{"openapi":"3.1.0","info":{"title":"Basalt","version":"1.1.0","description":"Basalt — self-computed onchain data + execution for AI agents across 13 EVM chains: ERC-20 safety scan, manipulation-resistant prices, gas oracle, DeFi positions (Aave health factor, Uniswap LP), tx simulation + USD cost, calldata decoder, and token/address/contract intel. Pay-per-call in USDC over x402, no API keys, no third-party data. A Bodhin Industries creation.","contact":{"name":"Bodhin Industries","email":"bodhinsshop@gmail.com"}},"servers":[{"url":"https://getbasalt.xyz"}],"x-service-info":{"name":"Basalt","description":"Basalt — self-computed onchain data + execution for AI agents across 13 EVM chains: ERC-20 safety scan, manipulation-resistant prices, gas oracle, DeFi positions (Aave health factor, Uniswap LP), tx simulation + USD cost, calldata decoder, and token/address/contract intel. Pay-per-call in USDC over x402, no API keys, no third-party data. A Bodhin Industries creation.","categories":["Finance","Data"],"documentationUrl":"https://getbasalt.xyz/","x402Version":2},"components":{"securitySchemes":{"x402":{"type":"apiKey","in":"header","name":"PAYMENT","description":"x402 payment (USDC on Base). Call with no payment to receive a 402; pay and retry."}}},"paths":{"/scan":{"get":{"operationId":"scanToken","summary":"Scan a Base ERC-20 for honeypot/sellability, tax, owner, liquidity","description":"Base ERC-20 safety scan: honeypot/sellability, buy/sell tax (bps), owner renounced, and Uniswap v3 WETH pool liquidity. Computed live from raw Base chain via eth_call buy+sell simulation — no third-party data. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base ERC-20 contract address (0x + 40 hex chars).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Safety verdict JSON","content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string","description":"ERC-20 address scanned"},"symbol":{"type":"string"},"decimals":{"type":"integer"},"block":{"type":"integer","description":"Base block height of scan"},"pair":{"type":"object","properties":{"dex":{"type":"string","description":"e.g. uniswap-v3"},"poolAddress":{"type":"string"},"feeTier":{"type":"integer"},"quoteAsset":{"type":"string","description":"WETH in v1"},"found":{"type":"boolean"},"liquidityWeth":{"type":"number","description":"WETH depth of deepest token/WETH pool"}}},"sellable":{"type":"boolean","description":"buy-then-sell round trip succeeded in sim"},"isHoneypot":{"type":"boolean","description":"buy ok but sell leg reverted (cannot exit)"},"buyTaxBps":{"type":["integer","null"],"description":"buy tax in basis points (100=1%)"},"sellTaxBps":{"type":["integer","null"],"description":"sell tax in basis points"},"ownerRenounced":{"type":["boolean","null"],"description":"true if owner() is zero/dead; null if no owner fn"},"ownerAddress":{"type":["string","null"]},"verdict":{"type":"string","enum":["likely_ok","caution","honeypot","unknown"],"description":"'unknown' is NOT 'safe'"},"reason":{"type":["string","null"]},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. sell_reverted, high_tax, low_liquidity, owner_not_renounced"},"thirdPartyDataUsed":{"type":"boolean","description":"always false — auditable"},"computedAt":{"type":"string","format":"date-time"}},"required":["token","verdict","thirdPartyDataUsed","computedAt"]}}}},"400":{"description":"Invalid token address"},"402":{"description":"Payment required (x402; full challenge in the PAYMENT-REQUIRED header)"}}}},"/balance":{"get":{"operationId":"addressBalance","summary":"Native balance, nonce, and EOA/contract state for any address","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/block":{"get":{"operationId":"blockInfo","summary":"Latest or specific block header (gas, base fee, tx count)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/tx":{"get":{"operationId":"txInfo","summary":"Full transaction details + receipt status by hash","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fees":{"get":{"operationId":"feeInfo","summary":"Current gas price + EIP-1559 fee estimate for any chain","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/erc165":{"get":{"operationId":"interfaceSupport","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/call":{"get":{"operationId":"ethCall","summary":"Read-only eth_call to any view function on any contract","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/estimategas":{"get":{"operationId":"estimateGasFor","summary":"Estimate gas for a transaction before submitting it","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/tokenbalances":{"get":{"operationId":"tokenBalances","summary":"ERC-20 balances for one address across many tokens at once","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/feehistory":{"get":{"operationId":"feeHistory","summary":"Base-fee trend + priority-fee percentiles over recent blocks","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/blocktxs":{"get":{"operationId":"blockTxs","summary":"List the transactions in a block (from/to/value)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/nativebalances":{"get":{"operationId":"nativeBalances","summary":"Native coin balances for many addresses at once","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/storagebatch":{"get":{"operationId":"storageBatch","summary":"Read multiple raw storage slots of a contract at once","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/chaininfo":{"get":{"operationId":"chainInfo","summary":"chainId, latest block, gas price, and native symbol for a chain","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/receipt":{"get":{"operationId":"receiptInfo","summary":"Full transaction receipt with event logs by hash","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/erc20meta":{"get":{"operationId":"erc20Meta","summary":"name / symbol / decimals / totalSupply for many tokens at once","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/erc1271":{"get":{"operationId":"verifyErc1271","summary":"Verify a signature against a smart-contract wallet (ERC-1271)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/price":{"get":{"operationId":"priceToken","summary":"Manipulation-resistant Uniswap v3 TWAP price of a Base token","description":"Manipulation-resistant Uniswap v3 TWAP price of any Base token in USDC (or WETH), computed live from pool observe() — with a spot-vs-TWAP deviation flag so an agent can detect a manipulated spot before trading. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base ERC-20 contract address to price.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"window","in":"query","required":false,"description":"TWAP averaging window in seconds (60–7200, default 1800). Longer = more manipulation-resistant.","schema":{"type":"integer"},"example":1800},{"name":"quote","in":"query","required":false,"description":"Quote currency: 'usdc' (default) or 'weth'.","schema":{"type":"string","enum":["usdc","weth"]},"example":"usdc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string","description":"token priced"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"block":{"type":"integer","description":"Base block height"},"quoteAsset":{"type":"string","description":"USDC or WETH"},"twapPrice":{"type":"string","description":"time-weighted average price in the quote asset (decimal string)"},"spotPrice":{"type":"string","description":"current spot price in the quote asset (decimal string)"},"twapPriceWeth":{"type":"string","description":"TWAP price denominated in WETH"},"deviationBps":{"type":"integer","description":"abs(spot-twap)/twap in basis points"},"manipulationSuspected":{"type":"boolean","description":"true if deviation is large or liquidity is very low"},"windowSeconds":{"type":"integer","description":"window actually used"},"method":{"type":"string","description":"univ3_observe_tick_twap"},"thirdPartyDataUsed":{"type":"boolean","description":"always false — auditable"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/decode":{"get":{"operationId":"decodeCalldata","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gas":{"get":{"operationId":"gasOracle","summary":"Ready-to-sign EIP-1559 fees for fast/avg/slow + USD cost","description":"Live Base gas oracle: ready-to-sign EIP-1559 maxFeePerGas + maxPriorityFeePerGas for fast/avg/slow tiers, base-fee trend/congestion, and the USD cost of a transaction — computed straight from the chain (eth_feeHistory + self-computed ETH/USD). No required params.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"gasLimit","in":"query","required":false,"description":"Gas units to price the tx for (default 21000 = a plain ETH transfer).","schema":{"type":"integer"},"example":21000},{"name":"rewardPercentiles","in":"query","required":false,"description":"Three ascending priority-fee percentiles (0–100) mapped to slow,avg,fast. Default '25,50,90'.","schema":{"type":"string"},"example":"25,50,90"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chain":{"type":"string","description":"base"},"chainId":{"type":"integer","description":"8453"},"block":{"type":"integer","description":"Base block height"},"baseFeePerGasGwei":{"type":"number","description":"current base fee (gwei)"},"nextBlockBaseFeePerGasGwei":{"type":"number","description":"predicted next-block base fee (gwei)"},"ethUsd":{"type":"number","description":"self-computed ETH/USD from Uniswap v3 WETH/USDC"},"gasLimit":{"type":"integer","description":"gas units priced"},"baseFeeTrend":{"type":"object","properties":{"direction":{"type":"string","description":"rising|falling|flat"},"changePctOver10Blocks":{"type":"number","description":"base-fee change %"},"congestion":{"type":"string","description":"low|medium|high"}}},"tiers":{"type":"object","properties":{"slow":{"type":"object","properties":{"maxFeePerGasGwei":{"type":"number","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"number","description":"priority fee (gwei)"},"estCostUsd":{"type":"number","description":"estimated cost in USD"}}},"avg":{"type":"object","properties":{"maxFeePerGasGwei":{"type":"number","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"number","description":"priority fee (gwei)"},"estCostUsd":{"type":"number","description":"estimated cost in USD"}}},"fast":{"type":"object","properties":{"maxFeePerGasGwei":{"type":"number","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"number","description":"priority fee (gwei)"},"estCostUsd":{"type":"number","description":"estimated cost in USD"}}}}},"method":{"type":"string","description":"self_computed_eth_feeHistory"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/token":{"get":{"operationId":"resolveToken","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/approvals":{"get":{"operationId":"auditApprovals","summary":"Find drainable ERC-20 allowances on a Base wallet","description":"Audit a Base wallet's live ERC-20 token approvals — find unlimited/oversized allowances to flagged or EOA spenders that an attacker could drain, computed live from raw chain. Whole-wallet discovery uses a recent block window; pass ?token for time-independent coverage of a specific token. Pass ?wallet=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"wallet","in":"query","required":true,"description":"Base wallet address to audit.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xab5801a7d398351b8be11c439e05c5b3259aec9b"},{"name":"token","in":"query","required":false,"description":"Specific ERC-20 to check allowances on (time-independent). If omitted, discovers approvals in the recent block window.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"lookback","in":"query","required":false,"description":"Recent block window for Approval-log discovery when token is omitted (max 800, default 800).","schema":{"type":"integer"},"example":800}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"wallet":{"type":"string","description":"wallet audited"},"block":{"type":"integer","description":"Base block height"},"approvals":{"type":"array","description":"active risky approvals","items":{"type":"object","properties":{"token":{"type":"string","description":"token address"},"tokenSymbol":{"type":"string","description":"symbol"},"spender":{"type":"string","description":"spender address"},"spenderIsContract":{"type":"boolean","description":"false = EOA spender (drainer signal)"},"allowanceFormatted":{"type":"string","description":"'unlimited' or decimal amount"},"isUnlimited":{"type":"boolean","description":"near-max allowance"},"exposureFormatted":{"type":"string","description":"realistically drainable now"},"risk":{"type":"string","description":"low|medium|high|critical"},"riskFlags":{"type":"array","items":{"type":"string"}}}}},"summary":{"type":"object","properties":{"activeApprovals":{"type":"integer","description":"count"},"unlimitedApprovals":{"type":"integer","description":"count"},"eoaSpenderApprovals":{"type":"integer","description":"count"},"highestRisk":{"type":"string","description":"worst risk level"}}},"verdict":{"type":"string","description":"clean|no_recent_approvals|medium|high|critical|unknown"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/code":{"get":{"operationId":"analyzeBytecode","summary":"Proxy detection, dangerous opcodes, codehash for any contract","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/address":{"get":{"operationId":"profileAddress","summary":"Know-Your-Address: balance, nonce, EOA/contract, holdings","description":"Know-Your-Address summary for any Base address: ETH balance, tx-count/nonce, EOA-vs-contract, contract fingerprint (ERC-20? proxy?), WETH/USDC holdings, and activity flags (e.g. never-used burner) — live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to profile (EOA or contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"block","in":"query","required":false,"description":"'latest' (default) or a decimal block number for a point-in-time snapshot.","schema":{"type":"string"},"example":"latest"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address profiled"},"block":{"type":"integer","description":"Base block height"},"type":{"type":"string","description":"eoa | contract"},"isContract":{"type":"boolean","description":"has bytecode"},"eth":{"type":"object","properties":{"wei":{"type":"string","description":"balance in wei"},"balance":{"type":"string","description":"balance in ETH (decimal string)"}}},"nonce":{"type":"integer","description":"eth_getTransactionCount (txs sent from address)"},"everUsed":{"type":"boolean","description":"nonce>0 or contract or holds value"},"contract":{"type":"object","properties":{"codeSize":{"type":"integer","description":"bytecode size"},"codeHash":{"type":"string","description":"keccak256"},"isErc20":{"type":"boolean","description":"ERC-20 interface"},"isErc721":{"type":"boolean","description":"ERC-721 interface"},"proxyImplementation":{"type":"string","description":"EIP-1167 impl or null"}}},"balances":{"type":"object","properties":{"weth":{"type":"number","description":"WETH held"},"usdc":{"type":"number","description":"USDC held"}}},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. eoa, contract, active, unused, holds_usdc"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/batch":{"get":{"operationId":"batchTriage","summary":"One-call honeypot/liquidity pre-check for up to 20 tokens","description":"One-call lightweight safety pre-check for up to 20 Base ERC-20s: per-token sellable/honeypot verdict + WETH pool depth, so an agent can filter a candidate list cheaply before paying for full /scan. Pass ?tokens=0x..,0x.. (comma-separated).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated list of up to 20 Base ERC-20 addresses; invalid entries are reported in skipped[].","schema":{"type":"string"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed,0x940181a94A35A4569E4529A3CDfB74e38FD98631"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"block":{"type":"integer","description":"Base block height"},"requested":{"type":"integer","description":"addresses requested"},"scanned":{"type":"integer","description":"addresses with a verdict"},"skipped":{"type":"array","items":{"type":"object","properties":{"token":{"type":"string","description":"address"},"reason":{"type":"string","description":"why skipped"}}}},"results":{"type":"array","items":{"type":"object","properties":{"token":{"type":"string","description":"address"},"symbol":{"type":"string","description":"symbol"},"sellable":{"type":"boolean","description":"sell leg succeeded"},"isHoneypot":{"type":"boolean","description":"buy ok, sell reverted"},"verdict":{"type":"string","description":"likely_ok|caution|honeypot|unknown"},"riskFlags":{"type":"array","items":{"type":"string"}}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/quote":{"get":{"operationId":"quoteSwap","summary":"Executable Uniswap v3 swap quote + price impact","description":"Executable Uniswap v3 single-hop swap quote for any Base token pair: how much tokenOut you get for a given tokenIn amount, the best fee tier, execution price, and price-impact in bps — self-computed via QuoterV2. The pre-trade call a swapping agent makes every time. Pass ?tokenIn=0x..&tokenOut=0x..&amountIn=1.5","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokenIn","in":"query","required":true,"description":"Token being sold (Base ERC-20 address).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"tokenOut","in":"query","required":true,"description":"Token being bought (Base ERC-20 address).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"amountIn","in":"query","required":true,"description":"Human amount of tokenIn to swap (e.g. 1.5).","schema":{"type":"string"},"example":"0.1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"tokenIn":{"type":"string","description":"token sold"},"tokenOut":{"type":"string","description":"token bought"},"tokenInSymbol":{"type":"string","description":"symbol"},"tokenOutSymbol":{"type":"string","description":"symbol"},"amountIn":{"type":"string","description":"input amount (human)"},"amountOut":{"type":"string","description":"output amount (human, decimal string)"},"feeTier":{"type":"integer","description":"best Uniswap v3 fee tier used"},"route":{"type":"string","description":"human-readable route"},"executionPrice":{"type":"string","description":"tokenOut per tokenIn at this trade size"},"priceImpactBps":{"type":"integer","description":"price impact vs a ~1/1000-size reference, in bps"},"priceImpactWarning":{"type":"boolean","description":"true if impact >= 300 bps (3%)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/txstatus":{"get":{"operationId":"txStatus","summary":"Did my tx land? status, gas, revert detection","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/simulate":{"get":{"operationId":"simulateCall","summary":"Will this tx revert? + gas estimate, before signing","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/portfolio":{"get":{"operationId":"portfolioValue","summary":"Total USD value of a Base wallet across ETH + major tokens","description":"Total USD net worth of a Base wallet, broken down per holding: native ETH + a curated set of major Base tokens (optionally extra tokens you name), each priced live via Uniswap v3 QuoterV2 (no price API). Size a wallet before quoting a trade, gate agent spend, or snapshot a treasury. Pass ?wallet=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"wallet","in":"query","required":true,"description":"Base wallet address to value (EOA or contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"},{"name":"tokens","in":"query","required":false,"description":"Optional comma-separated extra Base ERC-20 addresses to include beyond the major-token set (up to 10).","schema":{"type":"string"},"example":"0x940181a94A35A4569E4529A3CDfB74e38FD98631"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"wallet":{"type":"string","description":"wallet valued"},"block":{"type":"integer","description":"Base block height"},"holdings":{"type":"array","items":{"type":"object","properties":{"token":{"type":"string","description":"token address or 'native'"},"symbol":{"type":"string","description":"symbol"},"balance":{"type":"string","description":"human balance"},"priceUsd":{"type":"number","description":"USD per token (or null)"},"valueUsd":{"type":"number","description":"USD value of this holding"},"priced":{"type":"boolean","description":"was it priced"},"source":{"type":"string","description":"quoter_v2 | stablecoin_ref | no_pool"}}}},"totalUsd":{"type":"number","description":"total USD value (priced holdings)"},"ethPriceUsd":{"type":"number","description":"self-computed ETH/USD (or null)"},"holdingsCount":{"type":"integer","description":"holdings with balance > 0"},"pricedCount":{"type":"integer","description":"holdings that could be priced"},"coverage":{"type":"string","description":"what was covered"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/pool":{"get":{"operationId":"poolAnalytics","summary":"Per-fee-tier Uniswap v3 pool map for a token vs WETH","description":"Full Uniswap v3 pool landscape for a Base token vs WETH: for every fee tier (0.01/0.05/0.30/1.00%) whether a pool exists, its address, WETH liquidity depth, and slot0 spot price; flags the deepest pool and how fragmented liquidity is across tiers. Lets an agent pick the right fee tier and detect thin/fragmented liquidity before trading. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base ERC-20 to map against WETH.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string","description":"token mapped"},"quoteAsset":{"type":"string","description":"WETH"},"block":{"type":"integer","description":"Base block height"},"symbol":{"type":"string","description":"token symbol"},"poolsFound":{"type":"integer","description":"count of existing token/WETH pools"},"pools":{"type":"array","items":{"type":"object","properties":{"feeTier":{"type":"integer","description":"fee tier"},"exists":{"type":"boolean","description":"pool exists"},"poolAddress":{"type":"string","description":"pool address (or null)"},"liquidityWeth":{"type":"number","description":"WETH depth"},"spotPriceWeth":{"type":"string","description":"WETH per token (or null)"}}}},"deepestFeeTier":{"type":"integer","description":"fee tier of the deepest pool"},"totalLiquidityWeth":{"type":"number","description":"summed WETH depth across tiers"},"liquidityConcentrationPct":{"type":"number","description":"deepest pool's share of total depth"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. single_tier_only, fragmented_liquidity, low_total_liquidity"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/nft":{"get":{"operationId":"nftInfo","summary":"ERC-721/1155 detection + collection + per-token owner/URI","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/basename":{"get":{"operationId":"resolveName","summary":"Basename/ENS name↔address resolution on Base","description":"Bidirectional Basename/ENS resolution on Base, live on-chain (no API key). Pass ?query=jesse.base.eth to get the address; pass ?query=0x<address> to reverse-resolve to its primary Basename. Reverse mode includes a spoof-guard (verifies the primary name forward-resolves back). The lookup an agent runs before sending funds to, or displaying, a Base identity.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"query","in":"query","required":true,"description":"A Basename/ENS name (e.g. jesse.base.eth) to resolve to an address, OR a 0x address to reverse-resolve to its primary name.","schema":{"type":"string"},"example":"jesse.base.eth"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","description":"raw input"},"direction":{"type":"string","description":"forward | reverse"},"resolved":{"type":"boolean","description":"a record was found"},"address":{"type":"string","description":"resolved/queried address (or null)"},"name":{"type":"string","description":"resolved/primary Basename (or null)"},"verified":{"type":"boolean","description":"reverse-mode spoof-guard: primary name resolves back to this address (or null in forward mode)"},"avatar":{"type":"string","description":"avatar text record (or null)"},"reason":{"type":"string","description":"why unresolved (or null)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/vault":{"get":{"operationId":"vaultInfo","summary":"ERC-4626 vault: asset, TVL, shares, price-per-share","description":"Resolve any Base ERC-4626 tokenized vault (Morpho/Moonwell/Yearn-style yield vaults) to its underlying asset, total assets (TVL), total shares, decimals, name/symbol, and price-per-share (convertToAssets of one whole share) — plus the underlying asset's symbol/decimals. Value a vault position in one call. Non-4626 contracts return error:not_erc4626. Pass ?vault=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"vault","in":"query","required":true,"description":"Base ERC-4626 vault contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xc1256Ae5FF1cf2719D4937adb3bbCCab2E00A2Ca"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"vault":{"type":"string","description":"vault address"},"block":{"type":"integer","description":"Base block height"},"name":{"type":"string","description":"vault token name (or null)"},"symbol":{"type":"string","description":"vault share symbol (or null)"},"decimals":{"type":"integer","description":"share decimals"},"asset":{"type":"string","description":"underlying asset address"},"assetSymbol":{"type":"string","description":"underlying symbol (or null)"},"totalAssets":{"type":"string","description":"TVL in underlying units (human)"},"totalSupply":{"type":"string","description":"total shares (human)"},"pricePerShare":{"type":"string","description":"assets per one share (or null)"},"isEmpty":{"type":"boolean","description":"totalSupply == 0"},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/safe":{"get":{"operationId":"safeInfo","summary":"Gnosis Safe: owners, threshold, nonce, version, modules","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/permit":{"get":{"operationId":"permitSupport","summary":"Does this token support gasless permit()? + fields to build one","description":"Probe whether a Base ERC-20 supports EIP-2612 permit() so a gasless-approval agent can skip the on-chain approve() tx. Reads DOMAIN_SEPARATOR(), nonces(owner), and best-effort PERMIT_TYPEHASH/version — returns supportsPermit, the live domain separator + current nonce (the value to sign), the permit style, and always the canonical Uniswap Permit2 fallback. Pass ?token=0x<address> (optionally &owner=0x<address>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base ERC-20 to probe for EIP-2612 permit support.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"owner","in":"query","required":false,"description":"Address whose current permit nonce to read (defaults to the zero address).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string","description":"token probed"},"owner":{"type":"string","description":"nonce subject"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"supportsPermit":{"type":"boolean","description":"EIP-2612 permit supported"},"reads":{"type":"object","properties":{"DOMAIN_SEPARATOR":{"type":"boolean","description":"read ok"},"nonces":{"type":"boolean","description":"read ok"},"PERMIT_TYPEHASH":{"type":"boolean","description":"read ok"},"version":{"type":"boolean","description":"read ok"}}},"domainSeparator":{"type":"string","description":"EIP-712 domain separator (or null)"},"nonce":{"type":"string","description":"current nonce = value to sign (or null)"},"permitStyle":{"type":"string","description":"eip2612 | dai_style_or_custom | none"},"permit2":{"type":"string","description":"canonical Uniswap Permit2 fallback address"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/storage":{"get":{"operationId":"readStorage","summary":"Read any raw contract storage slot, decoded as uint/address/bool","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lending":{"get":{"operationId":"lendingPosition","summary":"Aave v3 collateral, debt & liquidation health factor for a wallet","description":"A wallet's Aave v3 borrow/lend position on Base: total collateral (USD), total debt (USD), available borrows, liquidation threshold, max LTV, and the all-important HEALTH FACTOR — with a liquidatable flag (debt>0 and HF<1.0). The one-shot liquidation-risk read a DeFi agent polls before acting. Pass ?wallet=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"wallet","in":"query","required":true,"description":"Base wallet to check for an Aave v3 position.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"wallet":{"type":"string","description":"wallet checked"},"protocol":{"type":"string","description":"aave-v3"},"block":{"type":"integer","description":"Base block height"},"hasPosition":{"type":"boolean","description":"has any collateral/debt"},"hasDebt":{"type":"boolean","description":"has borrows"},"liquidatable":{"type":"boolean","description":"debt>0 and healthFactor<1.0"},"healthFactor":{"type":"string","description":"1e18-scaled decimal (or null if no debt)"},"collateralUsd":{"type":"string","description":"total collateral USD"},"debtUsd":{"type":"string","description":"total debt USD"},"availableBorrowsUsd":{"type":"string","description":"remaining borrow capacity USD"},"currentLiquidationThresholdPct":{"type":"number","description":"liquidation threshold %"},"ltvPct":{"type":"number","description":"max LTV %"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/position":{"get":{"operationId":"lpPosition","summary":"Decode a Uniswap v3 LP NFT: pair, range, in-range status, fees owed","description":"Decode a Uniswap v3 liquidity position NFT on Base by tokenId: token pair, fee tier, tick range, live in-range status, active liquidity, and uncollected fees — self-computed from the NonfungiblePositionManager + pool slot0. The most-polled read for any LP-managing agent: am I still earning, or has price left my range? Pass ?tokenId=<n>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokenId","in":"query","required":true,"description":"Uniswap v3 position NFT tokenId (decimal).","schema":{"type":"string","pattern":"^[0-9]{1,78}$"},"example":"1000"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"tokenId":{"type":"string","description":"position id"},"owner":{"type":"string","description":"position owner (or null)"},"block":{"type":"integer","description":"Base block height"},"token0":{"type":"string","description":"token0 address"},"token1":{"type":"string","description":"token1 address"},"token0Symbol":{"type":"string","description":"symbol"},"token1Symbol":{"type":"string","description":"symbol"},"fee":{"type":"integer","description":"fee tier"},"tickLower":{"type":"integer","description":"lower tick"},"tickUpper":{"type":"integer","description":"upper tick"},"currentTick":{"type":"integer","description":"pool current tick (or null)"},"inRange":{"type":"boolean","description":"position is in range (or null)"},"rangePosition":{"type":"string","description":"below_range | in_range | above_range"},"pool":{"type":"string","description":"resolved pool address"},"liquidity":{"type":"string","description":"raw v3 liquidity L"},"uncollectedFees0":{"type":"string","description":"uncollected fees token0"},"uncollectedFees1":{"type":"string","description":"uncollected fees token1"},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/abi":{"get":{"operationId":"contractAbi","summary":"Recover a contract's function selectors from bytecode + resolve names","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/spot":{"get":{"operationId":"spotPrices","summary":"USD spot price for up to 15 Base tokens in one call","description":"Price a whole watchlist/basket at once: up to 15 Base tokens to USD in ONE call, each quoted token->USDC live via Uniswap v3 QuoterV2 (best fee tier; ETH/WETH direct; WETH-hop fallback; stablecoins = $1), all at one consistent block. Cheaper and more consistent than N separate /price calls. Pass ?tokens=eth,0x..,0x.. (comma-separated).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated up to 15 Base token addresses; use 'eth' for native ETH.","schema":{"type":"string"},"example":"eth,0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913,0x940181a94A35A4569E4529A3CDfB74e38FD98631"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"block":{"type":"integer","description":"Base block height"},"prices":{"type":"array","items":{"type":"object","properties":{"token":{"type":"string","description":"address or 'native'"},"symbol":{"type":"string","description":"symbol"},"priceUsd":{"type":"number","description":"USD per token (or null)"},"priced":{"type":"boolean","description":"could be priced"},"feeTier":{"type":"integer","description":"fee tier used (or null)"},"source":{"type":"string","description":"quoter_v2 | quoter_v2_weth_hop | stablecoin_ref | no_pool"}}}},"count":{"type":"integer","description":"tokens processed"},"pricedCount":{"type":"integer","description":"priced"},"ethPriceUsd":{"type":"number","description":"shared ETH/USD"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/allowance":{"get":{"operationId":"checkAllowance","summary":"Check one allowance(owner,spender) + balance, exposure, Permit2","description":"Check a single specific ERC-20 allowance on Base: given token + owner + spender, reads allowance + owner balance + metadata and classifies isUnlimited, drainable exposure = min(allowance,balance), and (optionally) whether it covers a requested ?amount. Permit2-aware: pass ?via=0x<downstream> to read the Permit2 sub-allowance. The precise check an agent runs around an approve(). Pass ?token=0x..&owner=0x..&spender=0x..","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"ERC-20 whose allowance to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"owner","in":"query","required":true,"description":"Address that granted the approval.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"},{"name":"spender","in":"query","required":true,"description":"Approved spender to check (router, Permit2, vault).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"amount","in":"query","required":false,"description":"Optional human amount to test sufficiency against.","schema":{"type":"string"},"example":"100"},{"name":"via","in":"query","required":false,"description":"Optional downstream spender for the Permit2 sub-allowance (only when spender is Permit2).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string","description":"token"},"owner":{"type":"string","description":"owner"},"spender":{"type":"string","description":"spender"},"block":{"type":"integer","description":"Base block height"},"symbol":{"type":"string","description":"symbol"},"allowanceFormatted":{"type":"string","description":"'unlimited' or human amount"},"isUnlimited":{"type":"boolean","description":"near-max allowance"},"ownerBalanceFormatted":{"type":"string","description":"owner balance"},"drainableExposureFormatted":{"type":"string","description":"min(allowance,balance)"},"sufficientFor":{"type":"boolean","description":"covers ?amount (or null)"},"spenderIsPermit2":{"type":"boolean","description":"spender is canonical Permit2"},"recommendation":{"type":"string","description":"no_allowance | needs_increase | over_approved | ok"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/multicall":{"get":{"operationId":"batchCalls","summary":"Run up to 20 arbitrary read-only calls in one eth_call","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/txcost":{"get":{"operationId":"txCostEstimate","summary":"USD cost of a specific tx before sending (+ will-it-revert)","description":"Pre-flight the real-money cost of a SPECIFIC Base transaction: give it {to, from?, data?, value?} and it runs estimateGas on your exact calldata, multiplies by a realistic gas price (next-block base fee + median tip), and converts to USD via self-computed WETH/USDC — returning costUsd, gasEstimate, gasPriceGwei, and willRevert (with reason). The number an agent needs to decide if an action is worth doing. Pass ?to=0x.. (optionally &from=&data=&value=).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target address of the transaction.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"from","in":"query","required":false,"description":"Sender (msg.sender) — recommended for accurate estimates.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"data","in":"query","required":false,"description":"Calldata hex (omit for a plain ETH transfer).","schema":{"type":"string"},"example":"0xd0e30db0"},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"1000000000000000"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chain":{"type":"string","description":"base"},"block":{"type":"integer","description":"Base block height"},"to":{"type":"string","description":"target"},"from":{"type":"string","description":"sender (or null)"},"valueWei":{"type":"string","description":"value in wei"},"willRevert":{"type":"boolean","description":"estimateGas reverted"},"revertReason":{"type":"string","description":"revert reason (or null)"},"gasEstimate":{"type":"string","description":"gas units (or null)"},"gasPriceGwei":{"type":"number","description":"effective gas price used"},"costEth":{"type":"string","description":"expected cost in ETH (or null)"},"costUsd":{"type":"number","description":"expected cost in USD (or null)"},"ethUsd":{"type":"number","description":"self-computed ETH/USD"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ethereum/token":{"get":{"operationId":"resolveToken_ethereum","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Ethereum)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ethereum/nft":{"get":{"operationId":"nftInfo_ethereum","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Ethereum)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ethereum/safe":{"get":{"operationId":"safeInfo_ethereum","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Ethereum)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ethereum/txstatus":{"get":{"operationId":"txStatus_ethereum","summary":"Did my tx land? status, gas, revert detection (Ethereum)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ethereum/simulate":{"get":{"operationId":"simulateCall_ethereum","summary":"Will this tx revert? + gas estimate, before signing (Ethereum)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ethereum/abi":{"get":{"operationId":"contractAbi_ethereum","summary":"Recover a contract's function selectors from bytecode + resolve names (Ethereum)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ethereum/code":{"get":{"operationId":"analyzeBytecode_ethereum","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Ethereum)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ethereum/storage":{"get":{"operationId":"readStorage_ethereum","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Ethereum)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ethereum/decode":{"get":{"operationId":"decodeCalldata_ethereum","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Ethereum)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ethereum/multicall":{"get":{"operationId":"batchCalls_ethereum","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Ethereum)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ethereum/balance":{"get":{"operationId":"addressBalance_ethereum","summary":"Native balance, nonce, and EOA/contract state for any address (Ethereum)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ethereum/block":{"get":{"operationId":"blockInfo_ethereum","summary":"Latest or specific block header (gas, base fee, tx count) (Ethereum)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ethereum/tx":{"get":{"operationId":"txInfo_ethereum","summary":"Full transaction details + receipt status by hash (Ethereum)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ethereum/fees":{"get":{"operationId":"feeInfo_ethereum","summary":"Current gas price + EIP-1559 fee estimate for any chain (Ethereum)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ethereum/erc165":{"get":{"operationId":"interfaceSupport_ethereum","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Ethereum)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ethereum/call":{"get":{"operationId":"ethCall_ethereum","summary":"Read-only eth_call to any view function on any contract (Ethereum)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ethereum/estimategas":{"get":{"operationId":"estimateGasFor_ethereum","summary":"Estimate gas for a transaction before submitting it (Ethereum)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ethereum/tokenbalances":{"get":{"operationId":"tokenBalances_ethereum","summary":"ERC-20 balances for one address across many tokens at once (Ethereum)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ethereum/feehistory":{"get":{"operationId":"feeHistory_ethereum","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Ethereum)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ethereum/blocktxs":{"get":{"operationId":"blockTxs_ethereum","summary":"List the transactions in a block (from/to/value) (Ethereum)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ethereum/nativebalances":{"get":{"operationId":"nativeBalances_ethereum","summary":"Native coin balances for many addresses at once (Ethereum)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ethereum/storagebatch":{"get":{"operationId":"storageBatch_ethereum","summary":"Read multiple raw storage slots of a contract at once (Ethereum)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ethereum/chaininfo":{"get":{"operationId":"chainInfo_ethereum","summary":"chainId, latest block, gas price, and native symbol for a chain (Ethereum)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ethereum/receipt":{"get":{"operationId":"receiptInfo_ethereum","summary":"Full transaction receipt with event logs by hash (Ethereum)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ethereum/erc20meta":{"get":{"operationId":"erc20Meta_ethereum","summary":"name / symbol / decimals / totalSupply for many tokens at once (Ethereum)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ethereum/erc1271":{"get":{"operationId":"verifyErc1271_ethereum","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Ethereum)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/optimism/token":{"get":{"operationId":"resolveToken_optimism","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Optimism)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/optimism/nft":{"get":{"operationId":"nftInfo_optimism","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Optimism)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/optimism/safe":{"get":{"operationId":"safeInfo_optimism","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Optimism)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/optimism/txstatus":{"get":{"operationId":"txStatus_optimism","summary":"Did my tx land? status, gas, revert detection (Optimism)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/optimism/simulate":{"get":{"operationId":"simulateCall_optimism","summary":"Will this tx revert? + gas estimate, before signing (Optimism)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/optimism/abi":{"get":{"operationId":"contractAbi_optimism","summary":"Recover a contract's function selectors from bytecode + resolve names (Optimism)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/optimism/code":{"get":{"operationId":"analyzeBytecode_optimism","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Optimism)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/optimism/storage":{"get":{"operationId":"readStorage_optimism","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Optimism)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/optimism/decode":{"get":{"operationId":"decodeCalldata_optimism","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Optimism)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/optimism/multicall":{"get":{"operationId":"batchCalls_optimism","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Optimism)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/optimism/balance":{"get":{"operationId":"addressBalance_optimism","summary":"Native balance, nonce, and EOA/contract state for any address (Optimism)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/optimism/block":{"get":{"operationId":"blockInfo_optimism","summary":"Latest or specific block header (gas, base fee, tx count) (Optimism)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/optimism/tx":{"get":{"operationId":"txInfo_optimism","summary":"Full transaction details + receipt status by hash (Optimism)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/optimism/fees":{"get":{"operationId":"feeInfo_optimism","summary":"Current gas price + EIP-1559 fee estimate for any chain (Optimism)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/optimism/erc165":{"get":{"operationId":"interfaceSupport_optimism","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Optimism)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/optimism/call":{"get":{"operationId":"ethCall_optimism","summary":"Read-only eth_call to any view function on any contract (Optimism)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/optimism/estimategas":{"get":{"operationId":"estimateGasFor_optimism","summary":"Estimate gas for a transaction before submitting it (Optimism)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/optimism/tokenbalances":{"get":{"operationId":"tokenBalances_optimism","summary":"ERC-20 balances for one address across many tokens at once (Optimism)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/optimism/feehistory":{"get":{"operationId":"feeHistory_optimism","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Optimism)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/optimism/blocktxs":{"get":{"operationId":"blockTxs_optimism","summary":"List the transactions in a block (from/to/value) (Optimism)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/optimism/nativebalances":{"get":{"operationId":"nativeBalances_optimism","summary":"Native coin balances for many addresses at once (Optimism)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/optimism/storagebatch":{"get":{"operationId":"storageBatch_optimism","summary":"Read multiple raw storage slots of a contract at once (Optimism)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/optimism/chaininfo":{"get":{"operationId":"chainInfo_optimism","summary":"chainId, latest block, gas price, and native symbol for a chain (Optimism)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/optimism/receipt":{"get":{"operationId":"receiptInfo_optimism","summary":"Full transaction receipt with event logs by hash (Optimism)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/optimism/erc20meta":{"get":{"operationId":"erc20Meta_optimism","summary":"name / symbol / decimals / totalSupply for many tokens at once (Optimism)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/optimism/erc1271":{"get":{"operationId":"verifyErc1271_optimism","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Optimism)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrum/token":{"get":{"operationId":"resolveToken_arbitrum","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Arbitrum)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrum/nft":{"get":{"operationId":"nftInfo_arbitrum","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Arbitrum)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrum/safe":{"get":{"operationId":"safeInfo_arbitrum","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Arbitrum)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrum/txstatus":{"get":{"operationId":"txStatus_arbitrum","summary":"Did my tx land? status, gas, revert detection (Arbitrum)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrum/simulate":{"get":{"operationId":"simulateCall_arbitrum","summary":"Will this tx revert? + gas estimate, before signing (Arbitrum)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrum/abi":{"get":{"operationId":"contractAbi_arbitrum","summary":"Recover a contract's function selectors from bytecode + resolve names (Arbitrum)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrum/code":{"get":{"operationId":"analyzeBytecode_arbitrum","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Arbitrum)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrum/storage":{"get":{"operationId":"readStorage_arbitrum","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Arbitrum)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrum/decode":{"get":{"operationId":"decodeCalldata_arbitrum","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Arbitrum)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrum/multicall":{"get":{"operationId":"batchCalls_arbitrum","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Arbitrum)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrum/balance":{"get":{"operationId":"addressBalance_arbitrum","summary":"Native balance, nonce, and EOA/contract state for any address (Arbitrum)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrum/block":{"get":{"operationId":"blockInfo_arbitrum","summary":"Latest or specific block header (gas, base fee, tx count) (Arbitrum)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrum/tx":{"get":{"operationId":"txInfo_arbitrum","summary":"Full transaction details + receipt status by hash (Arbitrum)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrum/fees":{"get":{"operationId":"feeInfo_arbitrum","summary":"Current gas price + EIP-1559 fee estimate for any chain (Arbitrum)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrum/erc165":{"get":{"operationId":"interfaceSupport_arbitrum","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Arbitrum)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrum/call":{"get":{"operationId":"ethCall_arbitrum","summary":"Read-only eth_call to any view function on any contract (Arbitrum)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrum/estimategas":{"get":{"operationId":"estimateGasFor_arbitrum","summary":"Estimate gas for a transaction before submitting it (Arbitrum)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrum/tokenbalances":{"get":{"operationId":"tokenBalances_arbitrum","summary":"ERC-20 balances for one address across many tokens at once (Arbitrum)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrum/feehistory":{"get":{"operationId":"feeHistory_arbitrum","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Arbitrum)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrum/blocktxs":{"get":{"operationId":"blockTxs_arbitrum","summary":"List the transactions in a block (from/to/value) (Arbitrum)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrum/nativebalances":{"get":{"operationId":"nativeBalances_arbitrum","summary":"Native coin balances for many addresses at once (Arbitrum)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrum/storagebatch":{"get":{"operationId":"storageBatch_arbitrum","summary":"Read multiple raw storage slots of a contract at once (Arbitrum)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrum/chaininfo":{"get":{"operationId":"chainInfo_arbitrum","summary":"chainId, latest block, gas price, and native symbol for a chain (Arbitrum)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrum/receipt":{"get":{"operationId":"receiptInfo_arbitrum","summary":"Full transaction receipt with event logs by hash (Arbitrum)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrum/erc20meta":{"get":{"operationId":"erc20Meta_arbitrum","summary":"name / symbol / decimals / totalSupply for many tokens at once (Arbitrum)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrum/erc1271":{"get":{"operationId":"verifyErc1271_arbitrum","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Arbitrum)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygon/token":{"get":{"operationId":"resolveToken_polygon","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Polygon)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygon/nft":{"get":{"operationId":"nftInfo_polygon","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Polygon)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygon/safe":{"get":{"operationId":"safeInfo_polygon","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Polygon)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygon/txstatus":{"get":{"operationId":"txStatus_polygon","summary":"Did my tx land? status, gas, revert detection (Polygon)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygon/simulate":{"get":{"operationId":"simulateCall_polygon","summary":"Will this tx revert? + gas estimate, before signing (Polygon)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygon/abi":{"get":{"operationId":"contractAbi_polygon","summary":"Recover a contract's function selectors from bytecode + resolve names (Polygon)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygon/code":{"get":{"operationId":"analyzeBytecode_polygon","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Polygon)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygon/storage":{"get":{"operationId":"readStorage_polygon","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Polygon)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygon/decode":{"get":{"operationId":"decodeCalldata_polygon","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Polygon)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygon/multicall":{"get":{"operationId":"batchCalls_polygon","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Polygon)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygon/balance":{"get":{"operationId":"addressBalance_polygon","summary":"Native balance, nonce, and EOA/contract state for any address (Polygon)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygon/block":{"get":{"operationId":"blockInfo_polygon","summary":"Latest or specific block header (gas, base fee, tx count) (Polygon)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygon/tx":{"get":{"operationId":"txInfo_polygon","summary":"Full transaction details + receipt status by hash (Polygon)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygon/fees":{"get":{"operationId":"feeInfo_polygon","summary":"Current gas price + EIP-1559 fee estimate for any chain (Polygon)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygon/erc165":{"get":{"operationId":"interfaceSupport_polygon","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Polygon)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygon/call":{"get":{"operationId":"ethCall_polygon","summary":"Read-only eth_call to any view function on any contract (Polygon)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygon/estimategas":{"get":{"operationId":"estimateGasFor_polygon","summary":"Estimate gas for a transaction before submitting it (Polygon)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygon/tokenbalances":{"get":{"operationId":"tokenBalances_polygon","summary":"ERC-20 balances for one address across many tokens at once (Polygon)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygon/feehistory":{"get":{"operationId":"feeHistory_polygon","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Polygon)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygon/blocktxs":{"get":{"operationId":"blockTxs_polygon","summary":"List the transactions in a block (from/to/value) (Polygon)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygon/nativebalances":{"get":{"operationId":"nativeBalances_polygon","summary":"Native coin balances for many addresses at once (Polygon)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygon/storagebatch":{"get":{"operationId":"storageBatch_polygon","summary":"Read multiple raw storage slots of a contract at once (Polygon)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygon/chaininfo":{"get":{"operationId":"chainInfo_polygon","summary":"chainId, latest block, gas price, and native symbol for a chain (Polygon)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygon/receipt":{"get":{"operationId":"receiptInfo_polygon","summary":"Full transaction receipt with event logs by hash (Polygon)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygon/erc20meta":{"get":{"operationId":"erc20Meta_polygon","summary":"name / symbol / decimals / totalSupply for many tokens at once (Polygon)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygon/erc1271":{"get":{"operationId":"verifyErc1271_polygon","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Polygon)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bnb/token":{"get":{"operationId":"resolveToken_bnb","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (BNB Chain)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bnb/nft":{"get":{"operationId":"nftInfo_bnb","summary":"ERC-721/1155 detection + collection + per-token owner/URI (BNB Chain)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bnb/safe":{"get":{"operationId":"safeInfo_bnb","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (BNB Chain)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bnb/txstatus":{"get":{"operationId":"txStatus_bnb","summary":"Did my tx land? status, gas, revert detection (BNB Chain)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bnb/simulate":{"get":{"operationId":"simulateCall_bnb","summary":"Will this tx revert? + gas estimate, before signing (BNB Chain)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bnb/abi":{"get":{"operationId":"contractAbi_bnb","summary":"Recover a contract's function selectors from bytecode + resolve names (BNB Chain)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bnb/code":{"get":{"operationId":"analyzeBytecode_bnb","summary":"Proxy detection, dangerous opcodes, codehash for any contract (BNB Chain)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bnb/storage":{"get":{"operationId":"readStorage_bnb","summary":"Read any raw contract storage slot, decoded as uint/address/bool (BNB Chain)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bnb/decode":{"get":{"operationId":"decodeCalldata_bnb","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (BNB Chain)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bnb/multicall":{"get":{"operationId":"batchCalls_bnb","summary":"Run up to 20 arbitrary read-only calls in one eth_call (BNB Chain)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bnb/balance":{"get":{"operationId":"addressBalance_bnb","summary":"Native balance, nonce, and EOA/contract state for any address (BNB Chain)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bnb/block":{"get":{"operationId":"blockInfo_bnb","summary":"Latest or specific block header (gas, base fee, tx count) (BNB Chain)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bnb/tx":{"get":{"operationId":"txInfo_bnb","summary":"Full transaction details + receipt status by hash (BNB Chain)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bnb/fees":{"get":{"operationId":"feeInfo_bnb","summary":"Current gas price + EIP-1559 fee estimate for any chain (BNB Chain)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bnb/erc165":{"get":{"operationId":"interfaceSupport_bnb","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (BNB Chain)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bnb/call":{"get":{"operationId":"ethCall_bnb","summary":"Read-only eth_call to any view function on any contract (BNB Chain)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bnb/estimategas":{"get":{"operationId":"estimateGasFor_bnb","summary":"Estimate gas for a transaction before submitting it (BNB Chain)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bnb/tokenbalances":{"get":{"operationId":"tokenBalances_bnb","summary":"ERC-20 balances for one address across many tokens at once (BNB Chain)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bnb/feehistory":{"get":{"operationId":"feeHistory_bnb","summary":"Base-fee trend + priority-fee percentiles over recent blocks (BNB Chain)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bnb/blocktxs":{"get":{"operationId":"blockTxs_bnb","summary":"List the transactions in a block (from/to/value) (BNB Chain)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bnb/nativebalances":{"get":{"operationId":"nativeBalances_bnb","summary":"Native coin balances for many addresses at once (BNB Chain)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bnb/storagebatch":{"get":{"operationId":"storageBatch_bnb","summary":"Read multiple raw storage slots of a contract at once (BNB Chain)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bnb/chaininfo":{"get":{"operationId":"chainInfo_bnb","summary":"chainId, latest block, gas price, and native symbol for a chain (BNB Chain)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bnb/receipt":{"get":{"operationId":"receiptInfo_bnb","summary":"Full transaction receipt with event logs by hash (BNB Chain)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bnb/erc20meta":{"get":{"operationId":"erc20Meta_bnb","summary":"name / symbol / decimals / totalSupply for many tokens at once (BNB Chain)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bnb/erc1271":{"get":{"operationId":"verifyErc1271_bnb","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (BNB Chain)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/avalanche/token":{"get":{"operationId":"resolveToken_avalanche","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Avalanche)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/avalanche/nft":{"get":{"operationId":"nftInfo_avalanche","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Avalanche)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/avalanche/safe":{"get":{"operationId":"safeInfo_avalanche","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Avalanche)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/avalanche/txstatus":{"get":{"operationId":"txStatus_avalanche","summary":"Did my tx land? status, gas, revert detection (Avalanche)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/avalanche/simulate":{"get":{"operationId":"simulateCall_avalanche","summary":"Will this tx revert? + gas estimate, before signing (Avalanche)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/avalanche/abi":{"get":{"operationId":"contractAbi_avalanche","summary":"Recover a contract's function selectors from bytecode + resolve names (Avalanche)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/avalanche/code":{"get":{"operationId":"analyzeBytecode_avalanche","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Avalanche)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/avalanche/storage":{"get":{"operationId":"readStorage_avalanche","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Avalanche)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/avalanche/decode":{"get":{"operationId":"decodeCalldata_avalanche","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Avalanche)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/avalanche/multicall":{"get":{"operationId":"batchCalls_avalanche","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Avalanche)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/avalanche/balance":{"get":{"operationId":"addressBalance_avalanche","summary":"Native balance, nonce, and EOA/contract state for any address (Avalanche)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/avalanche/block":{"get":{"operationId":"blockInfo_avalanche","summary":"Latest or specific block header (gas, base fee, tx count) (Avalanche)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/avalanche/tx":{"get":{"operationId":"txInfo_avalanche","summary":"Full transaction details + receipt status by hash (Avalanche)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/avalanche/fees":{"get":{"operationId":"feeInfo_avalanche","summary":"Current gas price + EIP-1559 fee estimate for any chain (Avalanche)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/avalanche/erc165":{"get":{"operationId":"interfaceSupport_avalanche","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Avalanche)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/avalanche/call":{"get":{"operationId":"ethCall_avalanche","summary":"Read-only eth_call to any view function on any contract (Avalanche)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/avalanche/estimategas":{"get":{"operationId":"estimateGasFor_avalanche","summary":"Estimate gas for a transaction before submitting it (Avalanche)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/avalanche/tokenbalances":{"get":{"operationId":"tokenBalances_avalanche","summary":"ERC-20 balances for one address across many tokens at once (Avalanche)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/avalanche/feehistory":{"get":{"operationId":"feeHistory_avalanche","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Avalanche)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/avalanche/blocktxs":{"get":{"operationId":"blockTxs_avalanche","summary":"List the transactions in a block (from/to/value) (Avalanche)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/avalanche/nativebalances":{"get":{"operationId":"nativeBalances_avalanche","summary":"Native coin balances for many addresses at once (Avalanche)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/avalanche/storagebatch":{"get":{"operationId":"storageBatch_avalanche","summary":"Read multiple raw storage slots of a contract at once (Avalanche)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/avalanche/chaininfo":{"get":{"operationId":"chainInfo_avalanche","summary":"chainId, latest block, gas price, and native symbol for a chain (Avalanche)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/avalanche/receipt":{"get":{"operationId":"receiptInfo_avalanche","summary":"Full transaction receipt with event logs by hash (Avalanche)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/avalanche/erc20meta":{"get":{"operationId":"erc20Meta_avalanche","summary":"name / symbol / decimals / totalSupply for many tokens at once (Avalanche)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/avalanche/erc1271":{"get":{"operationId":"verifyErc1271_avalanche","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Avalanche)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/scroll/token":{"get":{"operationId":"resolveToken_scroll","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Scroll)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/scroll/nft":{"get":{"operationId":"nftInfo_scroll","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Scroll)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/scroll/safe":{"get":{"operationId":"safeInfo_scroll","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Scroll)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/scroll/txstatus":{"get":{"operationId":"txStatus_scroll","summary":"Did my tx land? status, gas, revert detection (Scroll)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/scroll/simulate":{"get":{"operationId":"simulateCall_scroll","summary":"Will this tx revert? + gas estimate, before signing (Scroll)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/scroll/abi":{"get":{"operationId":"contractAbi_scroll","summary":"Recover a contract's function selectors from bytecode + resolve names (Scroll)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/scroll/code":{"get":{"operationId":"analyzeBytecode_scroll","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Scroll)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/scroll/storage":{"get":{"operationId":"readStorage_scroll","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Scroll)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/scroll/decode":{"get":{"operationId":"decodeCalldata_scroll","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Scroll)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/scroll/multicall":{"get":{"operationId":"batchCalls_scroll","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Scroll)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/scroll/balance":{"get":{"operationId":"addressBalance_scroll","summary":"Native balance, nonce, and EOA/contract state for any address (Scroll)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/scroll/block":{"get":{"operationId":"blockInfo_scroll","summary":"Latest or specific block header (gas, base fee, tx count) (Scroll)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/scroll/tx":{"get":{"operationId":"txInfo_scroll","summary":"Full transaction details + receipt status by hash (Scroll)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/scroll/fees":{"get":{"operationId":"feeInfo_scroll","summary":"Current gas price + EIP-1559 fee estimate for any chain (Scroll)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/scroll/erc165":{"get":{"operationId":"interfaceSupport_scroll","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Scroll)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/scroll/call":{"get":{"operationId":"ethCall_scroll","summary":"Read-only eth_call to any view function on any contract (Scroll)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/scroll/estimategas":{"get":{"operationId":"estimateGasFor_scroll","summary":"Estimate gas for a transaction before submitting it (Scroll)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/scroll/tokenbalances":{"get":{"operationId":"tokenBalances_scroll","summary":"ERC-20 balances for one address across many tokens at once (Scroll)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/scroll/feehistory":{"get":{"operationId":"feeHistory_scroll","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Scroll)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/scroll/blocktxs":{"get":{"operationId":"blockTxs_scroll","summary":"List the transactions in a block (from/to/value) (Scroll)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/scroll/nativebalances":{"get":{"operationId":"nativeBalances_scroll","summary":"Native coin balances for many addresses at once (Scroll)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/scroll/storagebatch":{"get":{"operationId":"storageBatch_scroll","summary":"Read multiple raw storage slots of a contract at once (Scroll)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/scroll/chaininfo":{"get":{"operationId":"chainInfo_scroll","summary":"chainId, latest block, gas price, and native symbol for a chain (Scroll)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/scroll/receipt":{"get":{"operationId":"receiptInfo_scroll","summary":"Full transaction receipt with event logs by hash (Scroll)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/scroll/erc20meta":{"get":{"operationId":"erc20Meta_scroll","summary":"name / symbol / decimals / totalSupply for many tokens at once (Scroll)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/scroll/erc1271":{"get":{"operationId":"verifyErc1271_scroll","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Scroll)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/linea/token":{"get":{"operationId":"resolveToken_linea","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Linea)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/linea/nft":{"get":{"operationId":"nftInfo_linea","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Linea)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/linea/safe":{"get":{"operationId":"safeInfo_linea","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Linea)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/linea/txstatus":{"get":{"operationId":"txStatus_linea","summary":"Did my tx land? status, gas, revert detection (Linea)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/linea/simulate":{"get":{"operationId":"simulateCall_linea","summary":"Will this tx revert? + gas estimate, before signing (Linea)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/linea/abi":{"get":{"operationId":"contractAbi_linea","summary":"Recover a contract's function selectors from bytecode + resolve names (Linea)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/linea/code":{"get":{"operationId":"analyzeBytecode_linea","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Linea)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/linea/storage":{"get":{"operationId":"readStorage_linea","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Linea)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/linea/decode":{"get":{"operationId":"decodeCalldata_linea","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Linea)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/linea/multicall":{"get":{"operationId":"batchCalls_linea","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Linea)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/linea/balance":{"get":{"operationId":"addressBalance_linea","summary":"Native balance, nonce, and EOA/contract state for any address (Linea)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/linea/block":{"get":{"operationId":"blockInfo_linea","summary":"Latest or specific block header (gas, base fee, tx count) (Linea)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/linea/tx":{"get":{"operationId":"txInfo_linea","summary":"Full transaction details + receipt status by hash (Linea)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/linea/fees":{"get":{"operationId":"feeInfo_linea","summary":"Current gas price + EIP-1559 fee estimate for any chain (Linea)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/linea/erc165":{"get":{"operationId":"interfaceSupport_linea","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Linea)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/linea/call":{"get":{"operationId":"ethCall_linea","summary":"Read-only eth_call to any view function on any contract (Linea)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/linea/estimategas":{"get":{"operationId":"estimateGasFor_linea","summary":"Estimate gas for a transaction before submitting it (Linea)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/linea/tokenbalances":{"get":{"operationId":"tokenBalances_linea","summary":"ERC-20 balances for one address across many tokens at once (Linea)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/linea/feehistory":{"get":{"operationId":"feeHistory_linea","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Linea)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/linea/blocktxs":{"get":{"operationId":"blockTxs_linea","summary":"List the transactions in a block (from/to/value) (Linea)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/linea/nativebalances":{"get":{"operationId":"nativeBalances_linea","summary":"Native coin balances for many addresses at once (Linea)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/linea/storagebatch":{"get":{"operationId":"storageBatch_linea","summary":"Read multiple raw storage slots of a contract at once (Linea)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/linea/chaininfo":{"get":{"operationId":"chainInfo_linea","summary":"chainId, latest block, gas price, and native symbol for a chain (Linea)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/linea/receipt":{"get":{"operationId":"receiptInfo_linea","summary":"Full transaction receipt with event logs by hash (Linea)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/linea/erc20meta":{"get":{"operationId":"erc20Meta_linea","summary":"name / symbol / decimals / totalSupply for many tokens at once (Linea)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/linea/erc1271":{"get":{"operationId":"verifyErc1271_linea","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Linea)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/celo/token":{"get":{"operationId":"resolveToken_celo","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Celo)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/celo/nft":{"get":{"operationId":"nftInfo_celo","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Celo)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/celo/safe":{"get":{"operationId":"safeInfo_celo","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Celo)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/celo/txstatus":{"get":{"operationId":"txStatus_celo","summary":"Did my tx land? status, gas, revert detection (Celo)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/celo/simulate":{"get":{"operationId":"simulateCall_celo","summary":"Will this tx revert? + gas estimate, before signing (Celo)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/celo/abi":{"get":{"operationId":"contractAbi_celo","summary":"Recover a contract's function selectors from bytecode + resolve names (Celo)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/celo/code":{"get":{"operationId":"analyzeBytecode_celo","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Celo)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/celo/storage":{"get":{"operationId":"readStorage_celo","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Celo)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/celo/decode":{"get":{"operationId":"decodeCalldata_celo","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Celo)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/celo/multicall":{"get":{"operationId":"batchCalls_celo","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Celo)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/celo/balance":{"get":{"operationId":"addressBalance_celo","summary":"Native balance, nonce, and EOA/contract state for any address (Celo)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/celo/block":{"get":{"operationId":"blockInfo_celo","summary":"Latest or specific block header (gas, base fee, tx count) (Celo)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/celo/tx":{"get":{"operationId":"txInfo_celo","summary":"Full transaction details + receipt status by hash (Celo)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/celo/fees":{"get":{"operationId":"feeInfo_celo","summary":"Current gas price + EIP-1559 fee estimate for any chain (Celo)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/celo/erc165":{"get":{"operationId":"interfaceSupport_celo","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Celo)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/celo/call":{"get":{"operationId":"ethCall_celo","summary":"Read-only eth_call to any view function on any contract (Celo)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/celo/estimategas":{"get":{"operationId":"estimateGasFor_celo","summary":"Estimate gas for a transaction before submitting it (Celo)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/celo/tokenbalances":{"get":{"operationId":"tokenBalances_celo","summary":"ERC-20 balances for one address across many tokens at once (Celo)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/celo/feehistory":{"get":{"operationId":"feeHistory_celo","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Celo)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/celo/blocktxs":{"get":{"operationId":"blockTxs_celo","summary":"List the transactions in a block (from/to/value) (Celo)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/celo/nativebalances":{"get":{"operationId":"nativeBalances_celo","summary":"Native coin balances for many addresses at once (Celo)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/celo/storagebatch":{"get":{"operationId":"storageBatch_celo","summary":"Read multiple raw storage slots of a contract at once (Celo)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/celo/chaininfo":{"get":{"operationId":"chainInfo_celo","summary":"chainId, latest block, gas price, and native symbol for a chain (Celo)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/celo/receipt":{"get":{"operationId":"receiptInfo_celo","summary":"Full transaction receipt with event logs by hash (Celo)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/celo/erc20meta":{"get":{"operationId":"erc20Meta_celo","summary":"name / symbol / decimals / totalSupply for many tokens at once (Celo)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/celo/erc1271":{"get":{"operationId":"verifyErc1271_celo","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Celo)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/blast/token":{"get":{"operationId":"resolveToken_blast","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Blast)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/blast/nft":{"get":{"operationId":"nftInfo_blast","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Blast)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/blast/safe":{"get":{"operationId":"safeInfo_blast","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Blast)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/blast/txstatus":{"get":{"operationId":"txStatus_blast","summary":"Did my tx land? status, gas, revert detection (Blast)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/blast/simulate":{"get":{"operationId":"simulateCall_blast","summary":"Will this tx revert? + gas estimate, before signing (Blast)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/blast/abi":{"get":{"operationId":"contractAbi_blast","summary":"Recover a contract's function selectors from bytecode + resolve names (Blast)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/blast/code":{"get":{"operationId":"analyzeBytecode_blast","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Blast)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/blast/storage":{"get":{"operationId":"readStorage_blast","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Blast)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/blast/decode":{"get":{"operationId":"decodeCalldata_blast","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Blast)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/blast/multicall":{"get":{"operationId":"batchCalls_blast","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Blast)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/blast/balance":{"get":{"operationId":"addressBalance_blast","summary":"Native balance, nonce, and EOA/contract state for any address (Blast)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/blast/block":{"get":{"operationId":"blockInfo_blast","summary":"Latest or specific block header (gas, base fee, tx count) (Blast)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/blast/tx":{"get":{"operationId":"txInfo_blast","summary":"Full transaction details + receipt status by hash (Blast)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/blast/fees":{"get":{"operationId":"feeInfo_blast","summary":"Current gas price + EIP-1559 fee estimate for any chain (Blast)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/blast/erc165":{"get":{"operationId":"interfaceSupport_blast","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Blast)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/blast/call":{"get":{"operationId":"ethCall_blast","summary":"Read-only eth_call to any view function on any contract (Blast)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/blast/estimategas":{"get":{"operationId":"estimateGasFor_blast","summary":"Estimate gas for a transaction before submitting it (Blast)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/blast/tokenbalances":{"get":{"operationId":"tokenBalances_blast","summary":"ERC-20 balances for one address across many tokens at once (Blast)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/blast/feehistory":{"get":{"operationId":"feeHistory_blast","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Blast)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/blast/blocktxs":{"get":{"operationId":"blockTxs_blast","summary":"List the transactions in a block (from/to/value) (Blast)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/blast/nativebalances":{"get":{"operationId":"nativeBalances_blast","summary":"Native coin balances for many addresses at once (Blast)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/blast/storagebatch":{"get":{"operationId":"storageBatch_blast","summary":"Read multiple raw storage slots of a contract at once (Blast)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/blast/chaininfo":{"get":{"operationId":"chainInfo_blast","summary":"chainId, latest block, gas price, and native symbol for a chain (Blast)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/blast/receipt":{"get":{"operationId":"receiptInfo_blast","summary":"Full transaction receipt with event logs by hash (Blast)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/blast/erc20meta":{"get":{"operationId":"erc20Meta_blast","summary":"name / symbol / decimals / totalSupply for many tokens at once (Blast)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/blast/erc1271":{"get":{"operationId":"verifyErc1271_blast","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Blast)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mode/token":{"get":{"operationId":"resolveToken_mode","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Mode)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mode/nft":{"get":{"operationId":"nftInfo_mode","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Mode)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mode/safe":{"get":{"operationId":"safeInfo_mode","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Mode)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mode/txstatus":{"get":{"operationId":"txStatus_mode","summary":"Did my tx land? status, gas, revert detection (Mode)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mode/simulate":{"get":{"operationId":"simulateCall_mode","summary":"Will this tx revert? + gas estimate, before signing (Mode)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mode/abi":{"get":{"operationId":"contractAbi_mode","summary":"Recover a contract's function selectors from bytecode + resolve names (Mode)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mode/code":{"get":{"operationId":"analyzeBytecode_mode","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Mode)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mode/storage":{"get":{"operationId":"readStorage_mode","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Mode)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mode/decode":{"get":{"operationId":"decodeCalldata_mode","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Mode)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mode/multicall":{"get":{"operationId":"batchCalls_mode","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Mode)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mode/balance":{"get":{"operationId":"addressBalance_mode","summary":"Native balance, nonce, and EOA/contract state for any address (Mode)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mode/block":{"get":{"operationId":"blockInfo_mode","summary":"Latest or specific block header (gas, base fee, tx count) (Mode)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mode/tx":{"get":{"operationId":"txInfo_mode","summary":"Full transaction details + receipt status by hash (Mode)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mode/fees":{"get":{"operationId":"feeInfo_mode","summary":"Current gas price + EIP-1559 fee estimate for any chain (Mode)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mode/erc165":{"get":{"operationId":"interfaceSupport_mode","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Mode)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mode/call":{"get":{"operationId":"ethCall_mode","summary":"Read-only eth_call to any view function on any contract (Mode)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mode/estimategas":{"get":{"operationId":"estimateGasFor_mode","summary":"Estimate gas for a transaction before submitting it (Mode)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mode/tokenbalances":{"get":{"operationId":"tokenBalances_mode","summary":"ERC-20 balances for one address across many tokens at once (Mode)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mode/feehistory":{"get":{"operationId":"feeHistory_mode","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Mode)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mode/blocktxs":{"get":{"operationId":"blockTxs_mode","summary":"List the transactions in a block (from/to/value) (Mode)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mode/nativebalances":{"get":{"operationId":"nativeBalances_mode","summary":"Native coin balances for many addresses at once (Mode)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mode/storagebatch":{"get":{"operationId":"storageBatch_mode","summary":"Read multiple raw storage slots of a contract at once (Mode)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mode/chaininfo":{"get":{"operationId":"chainInfo_mode","summary":"chainId, latest block, gas price, and native symbol for a chain (Mode)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mode/receipt":{"get":{"operationId":"receiptInfo_mode","summary":"Full transaction receipt with event logs by hash (Mode)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mode/erc20meta":{"get":{"operationId":"erc20Meta_mode","summary":"name / symbol / decimals / totalSupply for many tokens at once (Mode)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mode/erc1271":{"get":{"operationId":"verifyErc1271_mode","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Mode)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mantle/token":{"get":{"operationId":"resolveToken_mantle","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Mantle)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mantle/nft":{"get":{"operationId":"nftInfo_mantle","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Mantle)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mantle/safe":{"get":{"operationId":"safeInfo_mantle","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Mantle)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mantle/txstatus":{"get":{"operationId":"txStatus_mantle","summary":"Did my tx land? status, gas, revert detection (Mantle)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mantle/simulate":{"get":{"operationId":"simulateCall_mantle","summary":"Will this tx revert? + gas estimate, before signing (Mantle)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mantle/abi":{"get":{"operationId":"contractAbi_mantle","summary":"Recover a contract's function selectors from bytecode + resolve names (Mantle)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mantle/code":{"get":{"operationId":"analyzeBytecode_mantle","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Mantle)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mantle/storage":{"get":{"operationId":"readStorage_mantle","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Mantle)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mantle/decode":{"get":{"operationId":"decodeCalldata_mantle","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Mantle)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mantle/multicall":{"get":{"operationId":"batchCalls_mantle","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Mantle)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mantle/balance":{"get":{"operationId":"addressBalance_mantle","summary":"Native balance, nonce, and EOA/contract state for any address (Mantle)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mantle/block":{"get":{"operationId":"blockInfo_mantle","summary":"Latest or specific block header (gas, base fee, tx count) (Mantle)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mantle/tx":{"get":{"operationId":"txInfo_mantle","summary":"Full transaction details + receipt status by hash (Mantle)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mantle/fees":{"get":{"operationId":"feeInfo_mantle","summary":"Current gas price + EIP-1559 fee estimate for any chain (Mantle)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mantle/erc165":{"get":{"operationId":"interfaceSupport_mantle","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Mantle)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mantle/call":{"get":{"operationId":"ethCall_mantle","summary":"Read-only eth_call to any view function on any contract (Mantle)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mantle/estimategas":{"get":{"operationId":"estimateGasFor_mantle","summary":"Estimate gas for a transaction before submitting it (Mantle)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mantle/tokenbalances":{"get":{"operationId":"tokenBalances_mantle","summary":"ERC-20 balances for one address across many tokens at once (Mantle)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mantle/feehistory":{"get":{"operationId":"feeHistory_mantle","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Mantle)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mantle/blocktxs":{"get":{"operationId":"blockTxs_mantle","summary":"List the transactions in a block (from/to/value) (Mantle)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mantle/nativebalances":{"get":{"operationId":"nativeBalances_mantle","summary":"Native coin balances for many addresses at once (Mantle)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mantle/storagebatch":{"get":{"operationId":"storageBatch_mantle","summary":"Read multiple raw storage slots of a contract at once (Mantle)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mantle/chaininfo":{"get":{"operationId":"chainInfo_mantle","summary":"chainId, latest block, gas price, and native symbol for a chain (Mantle)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mantle/receipt":{"get":{"operationId":"receiptInfo_mantle","summary":"Full transaction receipt with event logs by hash (Mantle)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mantle/erc20meta":{"get":{"operationId":"erc20Meta_mantle","summary":"name / symbol / decimals / totalSupply for many tokens at once (Mantle)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/mantle/erc1271":{"get":{"operationId":"verifyErc1271_mantle","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Mantle)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gnosis/token":{"get":{"operationId":"resolveToken_gnosis","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Gnosis)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gnosis/nft":{"get":{"operationId":"nftInfo_gnosis","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Gnosis)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gnosis/safe":{"get":{"operationId":"safeInfo_gnosis","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Gnosis)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gnosis/txstatus":{"get":{"operationId":"txStatus_gnosis","summary":"Did my tx land? status, gas, revert detection (Gnosis)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gnosis/simulate":{"get":{"operationId":"simulateCall_gnosis","summary":"Will this tx revert? + gas estimate, before signing (Gnosis)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gnosis/abi":{"get":{"operationId":"contractAbi_gnosis","summary":"Recover a contract's function selectors from bytecode + resolve names (Gnosis)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gnosis/code":{"get":{"operationId":"analyzeBytecode_gnosis","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Gnosis)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gnosis/storage":{"get":{"operationId":"readStorage_gnosis","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Gnosis)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gnosis/decode":{"get":{"operationId":"decodeCalldata_gnosis","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Gnosis)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gnosis/multicall":{"get":{"operationId":"batchCalls_gnosis","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Gnosis)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gnosis/balance":{"get":{"operationId":"addressBalance_gnosis","summary":"Native balance, nonce, and EOA/contract state for any address (Gnosis)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gnosis/block":{"get":{"operationId":"blockInfo_gnosis","summary":"Latest or specific block header (gas, base fee, tx count) (Gnosis)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gnosis/tx":{"get":{"operationId":"txInfo_gnosis","summary":"Full transaction details + receipt status by hash (Gnosis)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gnosis/fees":{"get":{"operationId":"feeInfo_gnosis","summary":"Current gas price + EIP-1559 fee estimate for any chain (Gnosis)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gnosis/erc165":{"get":{"operationId":"interfaceSupport_gnosis","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Gnosis)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gnosis/call":{"get":{"operationId":"ethCall_gnosis","summary":"Read-only eth_call to any view function on any contract (Gnosis)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gnosis/estimategas":{"get":{"operationId":"estimateGasFor_gnosis","summary":"Estimate gas for a transaction before submitting it (Gnosis)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gnosis/tokenbalances":{"get":{"operationId":"tokenBalances_gnosis","summary":"ERC-20 balances for one address across many tokens at once (Gnosis)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gnosis/feehistory":{"get":{"operationId":"feeHistory_gnosis","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Gnosis)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gnosis/blocktxs":{"get":{"operationId":"blockTxs_gnosis","summary":"List the transactions in a block (from/to/value) (Gnosis)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gnosis/nativebalances":{"get":{"operationId":"nativeBalances_gnosis","summary":"Native coin balances for many addresses at once (Gnosis)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gnosis/storagebatch":{"get":{"operationId":"storageBatch_gnosis","summary":"Read multiple raw storage slots of a contract at once (Gnosis)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gnosis/chaininfo":{"get":{"operationId":"chainInfo_gnosis","summary":"chainId, latest block, gas price, and native symbol for a chain (Gnosis)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gnosis/receipt":{"get":{"operationId":"receiptInfo_gnosis","summary":"Full transaction receipt with event logs by hash (Gnosis)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gnosis/erc20meta":{"get":{"operationId":"erc20Meta_gnosis","summary":"name / symbol / decimals / totalSupply for many tokens at once (Gnosis)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gnosis/erc1271":{"get":{"operationId":"verifyErc1271_gnosis","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Gnosis)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonbeam/token":{"get":{"operationId":"resolveToken_moonbeam","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Moonbeam)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonbeam/nft":{"get":{"operationId":"nftInfo_moonbeam","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Moonbeam)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonbeam/safe":{"get":{"operationId":"safeInfo_moonbeam","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Moonbeam)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonbeam/txstatus":{"get":{"operationId":"txStatus_moonbeam","summary":"Did my tx land? status, gas, revert detection (Moonbeam)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonbeam/simulate":{"get":{"operationId":"simulateCall_moonbeam","summary":"Will this tx revert? + gas estimate, before signing (Moonbeam)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonbeam/abi":{"get":{"operationId":"contractAbi_moonbeam","summary":"Recover a contract's function selectors from bytecode + resolve names (Moonbeam)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonbeam/code":{"get":{"operationId":"analyzeBytecode_moonbeam","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Moonbeam)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonbeam/storage":{"get":{"operationId":"readStorage_moonbeam","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Moonbeam)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonbeam/decode":{"get":{"operationId":"decodeCalldata_moonbeam","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Moonbeam)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonbeam/multicall":{"get":{"operationId":"batchCalls_moonbeam","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Moonbeam)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonbeam/balance":{"get":{"operationId":"addressBalance_moonbeam","summary":"Native balance, nonce, and EOA/contract state for any address (Moonbeam)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonbeam/block":{"get":{"operationId":"blockInfo_moonbeam","summary":"Latest or specific block header (gas, base fee, tx count) (Moonbeam)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonbeam/tx":{"get":{"operationId":"txInfo_moonbeam","summary":"Full transaction details + receipt status by hash (Moonbeam)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonbeam/fees":{"get":{"operationId":"feeInfo_moonbeam","summary":"Current gas price + EIP-1559 fee estimate for any chain (Moonbeam)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonbeam/erc165":{"get":{"operationId":"interfaceSupport_moonbeam","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Moonbeam)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonbeam/call":{"get":{"operationId":"ethCall_moonbeam","summary":"Read-only eth_call to any view function on any contract (Moonbeam)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonbeam/estimategas":{"get":{"operationId":"estimateGasFor_moonbeam","summary":"Estimate gas for a transaction before submitting it (Moonbeam)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonbeam/tokenbalances":{"get":{"operationId":"tokenBalances_moonbeam","summary":"ERC-20 balances for one address across many tokens at once (Moonbeam)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonbeam/feehistory":{"get":{"operationId":"feeHistory_moonbeam","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Moonbeam)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonbeam/blocktxs":{"get":{"operationId":"blockTxs_moonbeam","summary":"List the transactions in a block (from/to/value) (Moonbeam)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonbeam/nativebalances":{"get":{"operationId":"nativeBalances_moonbeam","summary":"Native coin balances for many addresses at once (Moonbeam)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonbeam/storagebatch":{"get":{"operationId":"storageBatch_moonbeam","summary":"Read multiple raw storage slots of a contract at once (Moonbeam)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonbeam/chaininfo":{"get":{"operationId":"chainInfo_moonbeam","summary":"chainId, latest block, gas price, and native symbol for a chain (Moonbeam)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonbeam/receipt":{"get":{"operationId":"receiptInfo_moonbeam","summary":"Full transaction receipt with event logs by hash (Moonbeam)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonbeam/erc20meta":{"get":{"operationId":"erc20Meta_moonbeam","summary":"name / symbol / decimals / totalSupply for many tokens at once (Moonbeam)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonbeam/erc1271":{"get":{"operationId":"verifyErc1271_moonbeam","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Moonbeam)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonriver/token":{"get":{"operationId":"resolveToken_moonriver","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Moonriver)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonriver/nft":{"get":{"operationId":"nftInfo_moonriver","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Moonriver)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonriver/safe":{"get":{"operationId":"safeInfo_moonriver","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Moonriver)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonriver/txstatus":{"get":{"operationId":"txStatus_moonriver","summary":"Did my tx land? status, gas, revert detection (Moonriver)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonriver/simulate":{"get":{"operationId":"simulateCall_moonriver","summary":"Will this tx revert? + gas estimate, before signing (Moonriver)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonriver/abi":{"get":{"operationId":"contractAbi_moonriver","summary":"Recover a contract's function selectors from bytecode + resolve names (Moonriver)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonriver/code":{"get":{"operationId":"analyzeBytecode_moonriver","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Moonriver)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonriver/storage":{"get":{"operationId":"readStorage_moonriver","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Moonriver)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonriver/decode":{"get":{"operationId":"decodeCalldata_moonriver","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Moonriver)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonriver/multicall":{"get":{"operationId":"batchCalls_moonriver","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Moonriver)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonriver/balance":{"get":{"operationId":"addressBalance_moonriver","summary":"Native balance, nonce, and EOA/contract state for any address (Moonriver)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonriver/block":{"get":{"operationId":"blockInfo_moonriver","summary":"Latest or specific block header (gas, base fee, tx count) (Moonriver)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonriver/tx":{"get":{"operationId":"txInfo_moonriver","summary":"Full transaction details + receipt status by hash (Moonriver)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonriver/fees":{"get":{"operationId":"feeInfo_moonriver","summary":"Current gas price + EIP-1559 fee estimate for any chain (Moonriver)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonriver/erc165":{"get":{"operationId":"interfaceSupport_moonriver","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Moonriver)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonriver/call":{"get":{"operationId":"ethCall_moonriver","summary":"Read-only eth_call to any view function on any contract (Moonriver)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonriver/estimategas":{"get":{"operationId":"estimateGasFor_moonriver","summary":"Estimate gas for a transaction before submitting it (Moonriver)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonriver/tokenbalances":{"get":{"operationId":"tokenBalances_moonriver","summary":"ERC-20 balances for one address across many tokens at once (Moonriver)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonriver/feehistory":{"get":{"operationId":"feeHistory_moonriver","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Moonriver)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonriver/blocktxs":{"get":{"operationId":"blockTxs_moonriver","summary":"List the transactions in a block (from/to/value) (Moonriver)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonriver/nativebalances":{"get":{"operationId":"nativeBalances_moonriver","summary":"Native coin balances for many addresses at once (Moonriver)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonriver/storagebatch":{"get":{"operationId":"storageBatch_moonriver","summary":"Read multiple raw storage slots of a contract at once (Moonriver)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonriver/chaininfo":{"get":{"operationId":"chainInfo_moonriver","summary":"chainId, latest block, gas price, and native symbol for a chain (Moonriver)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonriver/receipt":{"get":{"operationId":"receiptInfo_moonriver","summary":"Full transaction receipt with event logs by hash (Moonriver)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonriver/erc20meta":{"get":{"operationId":"erc20Meta_moonriver","summary":"name / symbol / decimals / totalSupply for many tokens at once (Moonriver)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/moonriver/erc1271":{"get":{"operationId":"verifyErc1271_moonriver","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Moonriver)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cronos/token":{"get":{"operationId":"resolveToken_cronos","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Cronos)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cronos/nft":{"get":{"operationId":"nftInfo_cronos","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Cronos)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cronos/safe":{"get":{"operationId":"safeInfo_cronos","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Cronos)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cronos/txstatus":{"get":{"operationId":"txStatus_cronos","summary":"Did my tx land? status, gas, revert detection (Cronos)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cronos/simulate":{"get":{"operationId":"simulateCall_cronos","summary":"Will this tx revert? + gas estimate, before signing (Cronos)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cronos/abi":{"get":{"operationId":"contractAbi_cronos","summary":"Recover a contract's function selectors from bytecode + resolve names (Cronos)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cronos/code":{"get":{"operationId":"analyzeBytecode_cronos","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Cronos)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cronos/storage":{"get":{"operationId":"readStorage_cronos","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Cronos)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cronos/decode":{"get":{"operationId":"decodeCalldata_cronos","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Cronos)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cronos/multicall":{"get":{"operationId":"batchCalls_cronos","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Cronos)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cronos/balance":{"get":{"operationId":"addressBalance_cronos","summary":"Native balance, nonce, and EOA/contract state for any address (Cronos)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cronos/block":{"get":{"operationId":"blockInfo_cronos","summary":"Latest or specific block header (gas, base fee, tx count) (Cronos)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cronos/tx":{"get":{"operationId":"txInfo_cronos","summary":"Full transaction details + receipt status by hash (Cronos)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cronos/fees":{"get":{"operationId":"feeInfo_cronos","summary":"Current gas price + EIP-1559 fee estimate for any chain (Cronos)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cronos/erc165":{"get":{"operationId":"interfaceSupport_cronos","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Cronos)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cronos/call":{"get":{"operationId":"ethCall_cronos","summary":"Read-only eth_call to any view function on any contract (Cronos)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cronos/estimategas":{"get":{"operationId":"estimateGasFor_cronos","summary":"Estimate gas for a transaction before submitting it (Cronos)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cronos/tokenbalances":{"get":{"operationId":"tokenBalances_cronos","summary":"ERC-20 balances for one address across many tokens at once (Cronos)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cronos/feehistory":{"get":{"operationId":"feeHistory_cronos","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Cronos)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cronos/blocktxs":{"get":{"operationId":"blockTxs_cronos","summary":"List the transactions in a block (from/to/value) (Cronos)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cronos/nativebalances":{"get":{"operationId":"nativeBalances_cronos","summary":"Native coin balances for many addresses at once (Cronos)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cronos/storagebatch":{"get":{"operationId":"storageBatch_cronos","summary":"Read multiple raw storage slots of a contract at once (Cronos)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cronos/chaininfo":{"get":{"operationId":"chainInfo_cronos","summary":"chainId, latest block, gas price, and native symbol for a chain (Cronos)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cronos/receipt":{"get":{"operationId":"receiptInfo_cronos","summary":"Full transaction receipt with event logs by hash (Cronos)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cronos/erc20meta":{"get":{"operationId":"erc20Meta_cronos","summary":"name / symbol / decimals / totalSupply for many tokens at once (Cronos)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cronos/erc1271":{"get":{"operationId":"verifyErc1271_cronos","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Cronos)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/opbnb/token":{"get":{"operationId":"resolveToken_opbnb","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (opBNB)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/opbnb/nft":{"get":{"operationId":"nftInfo_opbnb","summary":"ERC-721/1155 detection + collection + per-token owner/URI (opBNB)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/opbnb/safe":{"get":{"operationId":"safeInfo_opbnb","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (opBNB)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/opbnb/txstatus":{"get":{"operationId":"txStatus_opbnb","summary":"Did my tx land? status, gas, revert detection (opBNB)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/opbnb/simulate":{"get":{"operationId":"simulateCall_opbnb","summary":"Will this tx revert? + gas estimate, before signing (opBNB)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/opbnb/abi":{"get":{"operationId":"contractAbi_opbnb","summary":"Recover a contract's function selectors from bytecode + resolve names (opBNB)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/opbnb/code":{"get":{"operationId":"analyzeBytecode_opbnb","summary":"Proxy detection, dangerous opcodes, codehash for any contract (opBNB)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/opbnb/storage":{"get":{"operationId":"readStorage_opbnb","summary":"Read any raw contract storage slot, decoded as uint/address/bool (opBNB)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/opbnb/decode":{"get":{"operationId":"decodeCalldata_opbnb","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (opBNB)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/opbnb/multicall":{"get":{"operationId":"batchCalls_opbnb","summary":"Run up to 20 arbitrary read-only calls in one eth_call (opBNB)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/opbnb/balance":{"get":{"operationId":"addressBalance_opbnb","summary":"Native balance, nonce, and EOA/contract state for any address (opBNB)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/opbnb/block":{"get":{"operationId":"blockInfo_opbnb","summary":"Latest or specific block header (gas, base fee, tx count) (opBNB)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/opbnb/tx":{"get":{"operationId":"txInfo_opbnb","summary":"Full transaction details + receipt status by hash (opBNB)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/opbnb/fees":{"get":{"operationId":"feeInfo_opbnb","summary":"Current gas price + EIP-1559 fee estimate for any chain (opBNB)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/opbnb/erc165":{"get":{"operationId":"interfaceSupport_opbnb","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (opBNB)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/opbnb/call":{"get":{"operationId":"ethCall_opbnb","summary":"Read-only eth_call to any view function on any contract (opBNB)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/opbnb/estimategas":{"get":{"operationId":"estimateGasFor_opbnb","summary":"Estimate gas for a transaction before submitting it (opBNB)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/opbnb/tokenbalances":{"get":{"operationId":"tokenBalances_opbnb","summary":"ERC-20 balances for one address across many tokens at once (opBNB)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/opbnb/feehistory":{"get":{"operationId":"feeHistory_opbnb","summary":"Base-fee trend + priority-fee percentiles over recent blocks (opBNB)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/opbnb/blocktxs":{"get":{"operationId":"blockTxs_opbnb","summary":"List the transactions in a block (from/to/value) (opBNB)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/opbnb/nativebalances":{"get":{"operationId":"nativeBalances_opbnb","summary":"Native coin balances for many addresses at once (opBNB)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/opbnb/storagebatch":{"get":{"operationId":"storageBatch_opbnb","summary":"Read multiple raw storage slots of a contract at once (opBNB)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/opbnb/chaininfo":{"get":{"operationId":"chainInfo_opbnb","summary":"chainId, latest block, gas price, and native symbol for a chain (opBNB)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/opbnb/receipt":{"get":{"operationId":"receiptInfo_opbnb","summary":"Full transaction receipt with event logs by hash (opBNB)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/opbnb/erc20meta":{"get":{"operationId":"erc20Meta_opbnb","summary":"name / symbol / decimals / totalSupply for many tokens at once (opBNB)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/opbnb/erc1271":{"get":{"operationId":"verifyErc1271_opbnb","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (opBNB)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kava/token":{"get":{"operationId":"resolveToken_kava","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Kava)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kava/nft":{"get":{"operationId":"nftInfo_kava","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Kava)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kava/safe":{"get":{"operationId":"safeInfo_kava","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Kava)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kava/txstatus":{"get":{"operationId":"txStatus_kava","summary":"Did my tx land? status, gas, revert detection (Kava)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kava/simulate":{"get":{"operationId":"simulateCall_kava","summary":"Will this tx revert? + gas estimate, before signing (Kava)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kava/abi":{"get":{"operationId":"contractAbi_kava","summary":"Recover a contract's function selectors from bytecode + resolve names (Kava)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kava/code":{"get":{"operationId":"analyzeBytecode_kava","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Kava)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kava/storage":{"get":{"operationId":"readStorage_kava","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Kava)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kava/decode":{"get":{"operationId":"decodeCalldata_kava","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Kava)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kava/multicall":{"get":{"operationId":"batchCalls_kava","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Kava)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kava/balance":{"get":{"operationId":"addressBalance_kava","summary":"Native balance, nonce, and EOA/contract state for any address (Kava)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kava/block":{"get":{"operationId":"blockInfo_kava","summary":"Latest or specific block header (gas, base fee, tx count) (Kava)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kava/tx":{"get":{"operationId":"txInfo_kava","summary":"Full transaction details + receipt status by hash (Kava)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kava/fees":{"get":{"operationId":"feeInfo_kava","summary":"Current gas price + EIP-1559 fee estimate for any chain (Kava)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kava/erc165":{"get":{"operationId":"interfaceSupport_kava","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Kava)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kava/call":{"get":{"operationId":"ethCall_kava","summary":"Read-only eth_call to any view function on any contract (Kava)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kava/estimategas":{"get":{"operationId":"estimateGasFor_kava","summary":"Estimate gas for a transaction before submitting it (Kava)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kava/tokenbalances":{"get":{"operationId":"tokenBalances_kava","summary":"ERC-20 balances for one address across many tokens at once (Kava)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kava/feehistory":{"get":{"operationId":"feeHistory_kava","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Kava)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kava/blocktxs":{"get":{"operationId":"blockTxs_kava","summary":"List the transactions in a block (from/to/value) (Kava)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kava/nativebalances":{"get":{"operationId":"nativeBalances_kava","summary":"Native coin balances for many addresses at once (Kava)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kava/storagebatch":{"get":{"operationId":"storageBatch_kava","summary":"Read multiple raw storage slots of a contract at once (Kava)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kava/chaininfo":{"get":{"operationId":"chainInfo_kava","summary":"chainId, latest block, gas price, and native symbol for a chain (Kava)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kava/receipt":{"get":{"operationId":"receiptInfo_kava","summary":"Full transaction receipt with event logs by hash (Kava)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kava/erc20meta":{"get":{"operationId":"erc20Meta_kava","summary":"name / symbol / decimals / totalSupply for many tokens at once (Kava)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kava/erc1271":{"get":{"operationId":"verifyErc1271_kava","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Kava)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metis/token":{"get":{"operationId":"resolveToken_metis","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Metis)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metis/nft":{"get":{"operationId":"nftInfo_metis","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Metis)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metis/safe":{"get":{"operationId":"safeInfo_metis","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Metis)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metis/txstatus":{"get":{"operationId":"txStatus_metis","summary":"Did my tx land? status, gas, revert detection (Metis)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metis/simulate":{"get":{"operationId":"simulateCall_metis","summary":"Will this tx revert? + gas estimate, before signing (Metis)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metis/abi":{"get":{"operationId":"contractAbi_metis","summary":"Recover a contract's function selectors from bytecode + resolve names (Metis)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metis/code":{"get":{"operationId":"analyzeBytecode_metis","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Metis)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metis/storage":{"get":{"operationId":"readStorage_metis","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Metis)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metis/decode":{"get":{"operationId":"decodeCalldata_metis","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Metis)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metis/multicall":{"get":{"operationId":"batchCalls_metis","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Metis)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metis/balance":{"get":{"operationId":"addressBalance_metis","summary":"Native balance, nonce, and EOA/contract state for any address (Metis)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metis/block":{"get":{"operationId":"blockInfo_metis","summary":"Latest or specific block header (gas, base fee, tx count) (Metis)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metis/tx":{"get":{"operationId":"txInfo_metis","summary":"Full transaction details + receipt status by hash (Metis)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metis/fees":{"get":{"operationId":"feeInfo_metis","summary":"Current gas price + EIP-1559 fee estimate for any chain (Metis)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metis/erc165":{"get":{"operationId":"interfaceSupport_metis","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Metis)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metis/call":{"get":{"operationId":"ethCall_metis","summary":"Read-only eth_call to any view function on any contract (Metis)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metis/estimategas":{"get":{"operationId":"estimateGasFor_metis","summary":"Estimate gas for a transaction before submitting it (Metis)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metis/tokenbalances":{"get":{"operationId":"tokenBalances_metis","summary":"ERC-20 balances for one address across many tokens at once (Metis)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metis/feehistory":{"get":{"operationId":"feeHistory_metis","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Metis)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metis/blocktxs":{"get":{"operationId":"blockTxs_metis","summary":"List the transactions in a block (from/to/value) (Metis)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metis/nativebalances":{"get":{"operationId":"nativeBalances_metis","summary":"Native coin balances for many addresses at once (Metis)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metis/storagebatch":{"get":{"operationId":"storageBatch_metis","summary":"Read multiple raw storage slots of a contract at once (Metis)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metis/chaininfo":{"get":{"operationId":"chainInfo_metis","summary":"chainId, latest block, gas price, and native symbol for a chain (Metis)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metis/receipt":{"get":{"operationId":"receiptInfo_metis","summary":"Full transaction receipt with event logs by hash (Metis)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metis/erc20meta":{"get":{"operationId":"erc20Meta_metis","summary":"name / symbol / decimals / totalSupply for many tokens at once (Metis)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metis/erc1271":{"get":{"operationId":"verifyErc1271_metis","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Metis)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygonzkevm/token":{"get":{"operationId":"resolveToken_polygonzkevm","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Polygon zkEVM)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygonzkevm/nft":{"get":{"operationId":"nftInfo_polygonzkevm","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Polygon zkEVM)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygonzkevm/safe":{"get":{"operationId":"safeInfo_polygonzkevm","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Polygon zkEVM)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygonzkevm/txstatus":{"get":{"operationId":"txStatus_polygonzkevm","summary":"Did my tx land? status, gas, revert detection (Polygon zkEVM)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygonzkevm/simulate":{"get":{"operationId":"simulateCall_polygonzkevm","summary":"Will this tx revert? + gas estimate, before signing (Polygon zkEVM)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygonzkevm/abi":{"get":{"operationId":"contractAbi_polygonzkevm","summary":"Recover a contract's function selectors from bytecode + resolve names (Polygon zkEVM)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygonzkevm/code":{"get":{"operationId":"analyzeBytecode_polygonzkevm","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Polygon zkEVM)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygonzkevm/storage":{"get":{"operationId":"readStorage_polygonzkevm","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Polygon zkEVM)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygonzkevm/decode":{"get":{"operationId":"decodeCalldata_polygonzkevm","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Polygon zkEVM)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygonzkevm/multicall":{"get":{"operationId":"batchCalls_polygonzkevm","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Polygon zkEVM)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygonzkevm/balance":{"get":{"operationId":"addressBalance_polygonzkevm","summary":"Native balance, nonce, and EOA/contract state for any address (Polygon zkEVM)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygonzkevm/block":{"get":{"operationId":"blockInfo_polygonzkevm","summary":"Latest or specific block header (gas, base fee, tx count) (Polygon zkEVM)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygonzkevm/tx":{"get":{"operationId":"txInfo_polygonzkevm","summary":"Full transaction details + receipt status by hash (Polygon zkEVM)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygonzkevm/fees":{"get":{"operationId":"feeInfo_polygonzkevm","summary":"Current gas price + EIP-1559 fee estimate for any chain (Polygon zkEVM)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygonzkevm/erc165":{"get":{"operationId":"interfaceSupport_polygonzkevm","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Polygon zkEVM)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygonzkevm/call":{"get":{"operationId":"ethCall_polygonzkevm","summary":"Read-only eth_call to any view function on any contract (Polygon zkEVM)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygonzkevm/estimategas":{"get":{"operationId":"estimateGasFor_polygonzkevm","summary":"Estimate gas for a transaction before submitting it (Polygon zkEVM)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygonzkevm/tokenbalances":{"get":{"operationId":"tokenBalances_polygonzkevm","summary":"ERC-20 balances for one address across many tokens at once (Polygon zkEVM)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygonzkevm/feehistory":{"get":{"operationId":"feeHistory_polygonzkevm","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Polygon zkEVM)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygonzkevm/blocktxs":{"get":{"operationId":"blockTxs_polygonzkevm","summary":"List the transactions in a block (from/to/value) (Polygon zkEVM)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygonzkevm/nativebalances":{"get":{"operationId":"nativeBalances_polygonzkevm","summary":"Native coin balances for many addresses at once (Polygon zkEVM)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygonzkevm/storagebatch":{"get":{"operationId":"storageBatch_polygonzkevm","summary":"Read multiple raw storage slots of a contract at once (Polygon zkEVM)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygonzkevm/chaininfo":{"get":{"operationId":"chainInfo_polygonzkevm","summary":"chainId, latest block, gas price, and native symbol for a chain (Polygon zkEVM)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygonzkevm/receipt":{"get":{"operationId":"receiptInfo_polygonzkevm","summary":"Full transaction receipt with event logs by hash (Polygon zkEVM)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygonzkevm/erc20meta":{"get":{"operationId":"erc20Meta_polygonzkevm","summary":"name / symbol / decimals / totalSupply for many tokens at once (Polygon zkEVM)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/polygonzkevm/erc1271":{"get":{"operationId":"verifyErc1271_polygonzkevm","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Polygon zkEVM)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrumnova/token":{"get":{"operationId":"resolveToken_arbitrumnova","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Arbitrum Nova)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrumnova/nft":{"get":{"operationId":"nftInfo_arbitrumnova","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Arbitrum Nova)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrumnova/safe":{"get":{"operationId":"safeInfo_arbitrumnova","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Arbitrum Nova)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrumnova/txstatus":{"get":{"operationId":"txStatus_arbitrumnova","summary":"Did my tx land? status, gas, revert detection (Arbitrum Nova)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrumnova/simulate":{"get":{"operationId":"simulateCall_arbitrumnova","summary":"Will this tx revert? + gas estimate, before signing (Arbitrum Nova)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrumnova/abi":{"get":{"operationId":"contractAbi_arbitrumnova","summary":"Recover a contract's function selectors from bytecode + resolve names (Arbitrum Nova)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrumnova/code":{"get":{"operationId":"analyzeBytecode_arbitrumnova","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Arbitrum Nova)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrumnova/storage":{"get":{"operationId":"readStorage_arbitrumnova","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Arbitrum Nova)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrumnova/decode":{"get":{"operationId":"decodeCalldata_arbitrumnova","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Arbitrum Nova)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrumnova/multicall":{"get":{"operationId":"batchCalls_arbitrumnova","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Arbitrum Nova)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrumnova/balance":{"get":{"operationId":"addressBalance_arbitrumnova","summary":"Native balance, nonce, and EOA/contract state for any address (Arbitrum Nova)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrumnova/block":{"get":{"operationId":"blockInfo_arbitrumnova","summary":"Latest or specific block header (gas, base fee, tx count) (Arbitrum Nova)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrumnova/tx":{"get":{"operationId":"txInfo_arbitrumnova","summary":"Full transaction details + receipt status by hash (Arbitrum Nova)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrumnova/fees":{"get":{"operationId":"feeInfo_arbitrumnova","summary":"Current gas price + EIP-1559 fee estimate for any chain (Arbitrum Nova)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrumnova/erc165":{"get":{"operationId":"interfaceSupport_arbitrumnova","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Arbitrum Nova)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrumnova/call":{"get":{"operationId":"ethCall_arbitrumnova","summary":"Read-only eth_call to any view function on any contract (Arbitrum Nova)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrumnova/estimategas":{"get":{"operationId":"estimateGasFor_arbitrumnova","summary":"Estimate gas for a transaction before submitting it (Arbitrum Nova)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrumnova/tokenbalances":{"get":{"operationId":"tokenBalances_arbitrumnova","summary":"ERC-20 balances for one address across many tokens at once (Arbitrum Nova)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrumnova/feehistory":{"get":{"operationId":"feeHistory_arbitrumnova","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Arbitrum Nova)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrumnova/blocktxs":{"get":{"operationId":"blockTxs_arbitrumnova","summary":"List the transactions in a block (from/to/value) (Arbitrum Nova)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrumnova/nativebalances":{"get":{"operationId":"nativeBalances_arbitrumnova","summary":"Native coin balances for many addresses at once (Arbitrum Nova)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrumnova/storagebatch":{"get":{"operationId":"storageBatch_arbitrumnova","summary":"Read multiple raw storage slots of a contract at once (Arbitrum Nova)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrumnova/chaininfo":{"get":{"operationId":"chainInfo_arbitrumnova","summary":"chainId, latest block, gas price, and native symbol for a chain (Arbitrum Nova)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrumnova/receipt":{"get":{"operationId":"receiptInfo_arbitrumnova","summary":"Full transaction receipt with event logs by hash (Arbitrum Nova)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrumnova/erc20meta":{"get":{"operationId":"erc20Meta_arbitrumnova","summary":"name / symbol / decimals / totalSupply for many tokens at once (Arbitrum Nova)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/arbitrumnova/erc1271":{"get":{"operationId":"verifyErc1271_arbitrumnova","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Arbitrum Nova)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sei/token":{"get":{"operationId":"resolveToken_sei","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Sei)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sei/nft":{"get":{"operationId":"nftInfo_sei","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Sei)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sei/safe":{"get":{"operationId":"safeInfo_sei","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Sei)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sei/txstatus":{"get":{"operationId":"txStatus_sei","summary":"Did my tx land? status, gas, revert detection (Sei)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sei/simulate":{"get":{"operationId":"simulateCall_sei","summary":"Will this tx revert? + gas estimate, before signing (Sei)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sei/abi":{"get":{"operationId":"contractAbi_sei","summary":"Recover a contract's function selectors from bytecode + resolve names (Sei)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sei/code":{"get":{"operationId":"analyzeBytecode_sei","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Sei)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sei/storage":{"get":{"operationId":"readStorage_sei","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Sei)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sei/decode":{"get":{"operationId":"decodeCalldata_sei","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Sei)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sei/multicall":{"get":{"operationId":"batchCalls_sei","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Sei)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sei/balance":{"get":{"operationId":"addressBalance_sei","summary":"Native balance, nonce, and EOA/contract state for any address (Sei)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sei/block":{"get":{"operationId":"blockInfo_sei","summary":"Latest or specific block header (gas, base fee, tx count) (Sei)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sei/tx":{"get":{"operationId":"txInfo_sei","summary":"Full transaction details + receipt status by hash (Sei)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sei/fees":{"get":{"operationId":"feeInfo_sei","summary":"Current gas price + EIP-1559 fee estimate for any chain (Sei)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sei/erc165":{"get":{"operationId":"interfaceSupport_sei","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Sei)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sei/call":{"get":{"operationId":"ethCall_sei","summary":"Read-only eth_call to any view function on any contract (Sei)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sei/estimategas":{"get":{"operationId":"estimateGasFor_sei","summary":"Estimate gas for a transaction before submitting it (Sei)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sei/tokenbalances":{"get":{"operationId":"tokenBalances_sei","summary":"ERC-20 balances for one address across many tokens at once (Sei)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sei/feehistory":{"get":{"operationId":"feeHistory_sei","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Sei)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sei/blocktxs":{"get":{"operationId":"blockTxs_sei","summary":"List the transactions in a block (from/to/value) (Sei)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sei/nativebalances":{"get":{"operationId":"nativeBalances_sei","summary":"Native coin balances for many addresses at once (Sei)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sei/storagebatch":{"get":{"operationId":"storageBatch_sei","summary":"Read multiple raw storage slots of a contract at once (Sei)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sei/chaininfo":{"get":{"operationId":"chainInfo_sei","summary":"chainId, latest block, gas price, and native symbol for a chain (Sei)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sei/receipt":{"get":{"operationId":"receiptInfo_sei","summary":"Full transaction receipt with event logs by hash (Sei)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sei/erc20meta":{"get":{"operationId":"erc20Meta_sei","summary":"name / symbol / decimals / totalSupply for many tokens at once (Sei)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sei/erc1271":{"get":{"operationId":"verifyErc1271_sei","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Sei)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/core/token":{"get":{"operationId":"resolveToken_core","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Core)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/core/nft":{"get":{"operationId":"nftInfo_core","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Core)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/core/safe":{"get":{"operationId":"safeInfo_core","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Core)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/core/txstatus":{"get":{"operationId":"txStatus_core","summary":"Did my tx land? status, gas, revert detection (Core)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/core/simulate":{"get":{"operationId":"simulateCall_core","summary":"Will this tx revert? + gas estimate, before signing (Core)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/core/abi":{"get":{"operationId":"contractAbi_core","summary":"Recover a contract's function selectors from bytecode + resolve names (Core)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/core/code":{"get":{"operationId":"analyzeBytecode_core","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Core)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/core/storage":{"get":{"operationId":"readStorage_core","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Core)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/core/decode":{"get":{"operationId":"decodeCalldata_core","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Core)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/core/multicall":{"get":{"operationId":"batchCalls_core","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Core)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/core/balance":{"get":{"operationId":"addressBalance_core","summary":"Native balance, nonce, and EOA/contract state for any address (Core)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/core/block":{"get":{"operationId":"blockInfo_core","summary":"Latest or specific block header (gas, base fee, tx count) (Core)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/core/tx":{"get":{"operationId":"txInfo_core","summary":"Full transaction details + receipt status by hash (Core)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/core/fees":{"get":{"operationId":"feeInfo_core","summary":"Current gas price + EIP-1559 fee estimate for any chain (Core)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/core/erc165":{"get":{"operationId":"interfaceSupport_core","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Core)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/core/call":{"get":{"operationId":"ethCall_core","summary":"Read-only eth_call to any view function on any contract (Core)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/core/estimategas":{"get":{"operationId":"estimateGasFor_core","summary":"Estimate gas for a transaction before submitting it (Core)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/core/tokenbalances":{"get":{"operationId":"tokenBalances_core","summary":"ERC-20 balances for one address across many tokens at once (Core)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/core/feehistory":{"get":{"operationId":"feeHistory_core","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Core)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/core/blocktxs":{"get":{"operationId":"blockTxs_core","summary":"List the transactions in a block (from/to/value) (Core)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/core/nativebalances":{"get":{"operationId":"nativeBalances_core","summary":"Native coin balances for many addresses at once (Core)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/core/storagebatch":{"get":{"operationId":"storageBatch_core","summary":"Read multiple raw storage slots of a contract at once (Core)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/core/chaininfo":{"get":{"operationId":"chainInfo_core","summary":"chainId, latest block, gas price, and native symbol for a chain (Core)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/core/receipt":{"get":{"operationId":"receiptInfo_core","summary":"Full transaction receipt with event logs by hash (Core)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/core/erc20meta":{"get":{"operationId":"erc20Meta_core","summary":"name / symbol / decimals / totalSupply for many tokens at once (Core)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/core/erc1271":{"get":{"operationId":"verifyErc1271_core","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Core)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/taiko/token":{"get":{"operationId":"resolveToken_taiko","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Taiko)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/taiko/nft":{"get":{"operationId":"nftInfo_taiko","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Taiko)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/taiko/safe":{"get":{"operationId":"safeInfo_taiko","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Taiko)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/taiko/txstatus":{"get":{"operationId":"txStatus_taiko","summary":"Did my tx land? status, gas, revert detection (Taiko)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/taiko/simulate":{"get":{"operationId":"simulateCall_taiko","summary":"Will this tx revert? + gas estimate, before signing (Taiko)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/taiko/abi":{"get":{"operationId":"contractAbi_taiko","summary":"Recover a contract's function selectors from bytecode + resolve names (Taiko)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/taiko/code":{"get":{"operationId":"analyzeBytecode_taiko","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Taiko)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/taiko/storage":{"get":{"operationId":"readStorage_taiko","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Taiko)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/taiko/decode":{"get":{"operationId":"decodeCalldata_taiko","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Taiko)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/taiko/multicall":{"get":{"operationId":"batchCalls_taiko","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Taiko)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/taiko/balance":{"get":{"operationId":"addressBalance_taiko","summary":"Native balance, nonce, and EOA/contract state for any address (Taiko)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/taiko/block":{"get":{"operationId":"blockInfo_taiko","summary":"Latest or specific block header (gas, base fee, tx count) (Taiko)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/taiko/tx":{"get":{"operationId":"txInfo_taiko","summary":"Full transaction details + receipt status by hash (Taiko)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/taiko/fees":{"get":{"operationId":"feeInfo_taiko","summary":"Current gas price + EIP-1559 fee estimate for any chain (Taiko)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/taiko/erc165":{"get":{"operationId":"interfaceSupport_taiko","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Taiko)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/taiko/call":{"get":{"operationId":"ethCall_taiko","summary":"Read-only eth_call to any view function on any contract (Taiko)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/taiko/estimategas":{"get":{"operationId":"estimateGasFor_taiko","summary":"Estimate gas for a transaction before submitting it (Taiko)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/taiko/tokenbalances":{"get":{"operationId":"tokenBalances_taiko","summary":"ERC-20 balances for one address across many tokens at once (Taiko)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/taiko/feehistory":{"get":{"operationId":"feeHistory_taiko","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Taiko)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/taiko/blocktxs":{"get":{"operationId":"blockTxs_taiko","summary":"List the transactions in a block (from/to/value) (Taiko)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/taiko/nativebalances":{"get":{"operationId":"nativeBalances_taiko","summary":"Native coin balances for many addresses at once (Taiko)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/taiko/storagebatch":{"get":{"operationId":"storageBatch_taiko","summary":"Read multiple raw storage slots of a contract at once (Taiko)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/taiko/chaininfo":{"get":{"operationId":"chainInfo_taiko","summary":"chainId, latest block, gas price, and native symbol for a chain (Taiko)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/taiko/receipt":{"get":{"operationId":"receiptInfo_taiko","summary":"Full transaction receipt with event logs by hash (Taiko)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/taiko/erc20meta":{"get":{"operationId":"erc20Meta_taiko","summary":"name / symbol / decimals / totalSupply for many tokens at once (Taiko)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/taiko/erc1271":{"get":{"operationId":"verifyErc1271_taiko","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Taiko)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zora/token":{"get":{"operationId":"resolveToken_zora","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Zora)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zora/nft":{"get":{"operationId":"nftInfo_zora","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Zora)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zora/safe":{"get":{"operationId":"safeInfo_zora","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Zora)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zora/txstatus":{"get":{"operationId":"txStatus_zora","summary":"Did my tx land? status, gas, revert detection (Zora)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zora/simulate":{"get":{"operationId":"simulateCall_zora","summary":"Will this tx revert? + gas estimate, before signing (Zora)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zora/abi":{"get":{"operationId":"contractAbi_zora","summary":"Recover a contract's function selectors from bytecode + resolve names (Zora)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zora/code":{"get":{"operationId":"analyzeBytecode_zora","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Zora)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zora/storage":{"get":{"operationId":"readStorage_zora","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Zora)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zora/decode":{"get":{"operationId":"decodeCalldata_zora","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Zora)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zora/multicall":{"get":{"operationId":"batchCalls_zora","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Zora)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zora/balance":{"get":{"operationId":"addressBalance_zora","summary":"Native balance, nonce, and EOA/contract state for any address (Zora)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zora/block":{"get":{"operationId":"blockInfo_zora","summary":"Latest or specific block header (gas, base fee, tx count) (Zora)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zora/tx":{"get":{"operationId":"txInfo_zora","summary":"Full transaction details + receipt status by hash (Zora)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zora/fees":{"get":{"operationId":"feeInfo_zora","summary":"Current gas price + EIP-1559 fee estimate for any chain (Zora)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zora/erc165":{"get":{"operationId":"interfaceSupport_zora","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Zora)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zora/call":{"get":{"operationId":"ethCall_zora","summary":"Read-only eth_call to any view function on any contract (Zora)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zora/estimategas":{"get":{"operationId":"estimateGasFor_zora","summary":"Estimate gas for a transaction before submitting it (Zora)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zora/tokenbalances":{"get":{"operationId":"tokenBalances_zora","summary":"ERC-20 balances for one address across many tokens at once (Zora)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zora/feehistory":{"get":{"operationId":"feeHistory_zora","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Zora)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zora/blocktxs":{"get":{"operationId":"blockTxs_zora","summary":"List the transactions in a block (from/to/value) (Zora)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zora/nativebalances":{"get":{"operationId":"nativeBalances_zora","summary":"Native coin balances for many addresses at once (Zora)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zora/storagebatch":{"get":{"operationId":"storageBatch_zora","summary":"Read multiple raw storage slots of a contract at once (Zora)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zora/chaininfo":{"get":{"operationId":"chainInfo_zora","summary":"chainId, latest block, gas price, and native symbol for a chain (Zora)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zora/receipt":{"get":{"operationId":"receiptInfo_zora","summary":"Full transaction receipt with event logs by hash (Zora)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zora/erc20meta":{"get":{"operationId":"erc20Meta_zora","summary":"name / symbol / decimals / totalSupply for many tokens at once (Zora)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zora/erc1271":{"get":{"operationId":"verifyErc1271_zora","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Zora)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fraxtal/token":{"get":{"operationId":"resolveToken_fraxtal","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Fraxtal)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fraxtal/nft":{"get":{"operationId":"nftInfo_fraxtal","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Fraxtal)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fraxtal/safe":{"get":{"operationId":"safeInfo_fraxtal","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Fraxtal)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fraxtal/txstatus":{"get":{"operationId":"txStatus_fraxtal","summary":"Did my tx land? status, gas, revert detection (Fraxtal)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fraxtal/simulate":{"get":{"operationId":"simulateCall_fraxtal","summary":"Will this tx revert? + gas estimate, before signing (Fraxtal)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fraxtal/abi":{"get":{"operationId":"contractAbi_fraxtal","summary":"Recover a contract's function selectors from bytecode + resolve names (Fraxtal)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fraxtal/code":{"get":{"operationId":"analyzeBytecode_fraxtal","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Fraxtal)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fraxtal/storage":{"get":{"operationId":"readStorage_fraxtal","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Fraxtal)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fraxtal/decode":{"get":{"operationId":"decodeCalldata_fraxtal","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Fraxtal)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fraxtal/multicall":{"get":{"operationId":"batchCalls_fraxtal","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Fraxtal)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fraxtal/balance":{"get":{"operationId":"addressBalance_fraxtal","summary":"Native balance, nonce, and EOA/contract state for any address (Fraxtal)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fraxtal/block":{"get":{"operationId":"blockInfo_fraxtal","summary":"Latest or specific block header (gas, base fee, tx count) (Fraxtal)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fraxtal/tx":{"get":{"operationId":"txInfo_fraxtal","summary":"Full transaction details + receipt status by hash (Fraxtal)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fraxtal/fees":{"get":{"operationId":"feeInfo_fraxtal","summary":"Current gas price + EIP-1559 fee estimate for any chain (Fraxtal)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fraxtal/erc165":{"get":{"operationId":"interfaceSupport_fraxtal","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Fraxtal)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fraxtal/call":{"get":{"operationId":"ethCall_fraxtal","summary":"Read-only eth_call to any view function on any contract (Fraxtal)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fraxtal/estimategas":{"get":{"operationId":"estimateGasFor_fraxtal","summary":"Estimate gas for a transaction before submitting it (Fraxtal)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fraxtal/tokenbalances":{"get":{"operationId":"tokenBalances_fraxtal","summary":"ERC-20 balances for one address across many tokens at once (Fraxtal)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fraxtal/feehistory":{"get":{"operationId":"feeHistory_fraxtal","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Fraxtal)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fraxtal/blocktxs":{"get":{"operationId":"blockTxs_fraxtal","summary":"List the transactions in a block (from/to/value) (Fraxtal)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fraxtal/nativebalances":{"get":{"operationId":"nativeBalances_fraxtal","summary":"Native coin balances for many addresses at once (Fraxtal)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fraxtal/storagebatch":{"get":{"operationId":"storageBatch_fraxtal","summary":"Read multiple raw storage slots of a contract at once (Fraxtal)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fraxtal/chaininfo":{"get":{"operationId":"chainInfo_fraxtal","summary":"chainId, latest block, gas price, and native symbol for a chain (Fraxtal)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fraxtal/receipt":{"get":{"operationId":"receiptInfo_fraxtal","summary":"Full transaction receipt with event logs by hash (Fraxtal)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fraxtal/erc20meta":{"get":{"operationId":"erc20Meta_fraxtal","summary":"name / symbol / decimals / totalSupply for many tokens at once (Fraxtal)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fraxtal/erc1271":{"get":{"operationId":"verifyErc1271_fraxtal","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Fraxtal)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/manta/token":{"get":{"operationId":"resolveToken_manta","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Manta Pacific)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/manta/nft":{"get":{"operationId":"nftInfo_manta","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Manta Pacific)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/manta/safe":{"get":{"operationId":"safeInfo_manta","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Manta Pacific)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/manta/txstatus":{"get":{"operationId":"txStatus_manta","summary":"Did my tx land? status, gas, revert detection (Manta Pacific)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/manta/simulate":{"get":{"operationId":"simulateCall_manta","summary":"Will this tx revert? + gas estimate, before signing (Manta Pacific)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/manta/abi":{"get":{"operationId":"contractAbi_manta","summary":"Recover a contract's function selectors from bytecode + resolve names (Manta Pacific)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/manta/code":{"get":{"operationId":"analyzeBytecode_manta","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Manta Pacific)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/manta/storage":{"get":{"operationId":"readStorage_manta","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Manta Pacific)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/manta/decode":{"get":{"operationId":"decodeCalldata_manta","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Manta Pacific)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/manta/multicall":{"get":{"operationId":"batchCalls_manta","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Manta Pacific)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/manta/balance":{"get":{"operationId":"addressBalance_manta","summary":"Native balance, nonce, and EOA/contract state for any address (Manta Pacific)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/manta/block":{"get":{"operationId":"blockInfo_manta","summary":"Latest or specific block header (gas, base fee, tx count) (Manta Pacific)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/manta/tx":{"get":{"operationId":"txInfo_manta","summary":"Full transaction details + receipt status by hash (Manta Pacific)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/manta/fees":{"get":{"operationId":"feeInfo_manta","summary":"Current gas price + EIP-1559 fee estimate for any chain (Manta Pacific)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/manta/erc165":{"get":{"operationId":"interfaceSupport_manta","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Manta Pacific)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/manta/call":{"get":{"operationId":"ethCall_manta","summary":"Read-only eth_call to any view function on any contract (Manta Pacific)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/manta/estimategas":{"get":{"operationId":"estimateGasFor_manta","summary":"Estimate gas for a transaction before submitting it (Manta Pacific)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/manta/tokenbalances":{"get":{"operationId":"tokenBalances_manta","summary":"ERC-20 balances for one address across many tokens at once (Manta Pacific)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/manta/feehistory":{"get":{"operationId":"feeHistory_manta","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Manta Pacific)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/manta/blocktxs":{"get":{"operationId":"blockTxs_manta","summary":"List the transactions in a block (from/to/value) (Manta Pacific)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/manta/nativebalances":{"get":{"operationId":"nativeBalances_manta","summary":"Native coin balances for many addresses at once (Manta Pacific)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/manta/storagebatch":{"get":{"operationId":"storageBatch_manta","summary":"Read multiple raw storage slots of a contract at once (Manta Pacific)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/manta/chaininfo":{"get":{"operationId":"chainInfo_manta","summary":"chainId, latest block, gas price, and native symbol for a chain (Manta Pacific)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/manta/receipt":{"get":{"operationId":"receiptInfo_manta","summary":"Full transaction receipt with event logs by hash (Manta Pacific)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/manta/erc20meta":{"get":{"operationId":"erc20Meta_manta","summary":"name / symbol / decimals / totalSupply for many tokens at once (Manta Pacific)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/manta/erc1271":{"get":{"operationId":"verifyErc1271_manta","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Manta Pacific)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lisk/token":{"get":{"operationId":"resolveToken_lisk","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Lisk)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lisk/nft":{"get":{"operationId":"nftInfo_lisk","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Lisk)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lisk/safe":{"get":{"operationId":"safeInfo_lisk","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Lisk)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lisk/txstatus":{"get":{"operationId":"txStatus_lisk","summary":"Did my tx land? status, gas, revert detection (Lisk)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lisk/simulate":{"get":{"operationId":"simulateCall_lisk","summary":"Will this tx revert? + gas estimate, before signing (Lisk)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lisk/abi":{"get":{"operationId":"contractAbi_lisk","summary":"Recover a contract's function selectors from bytecode + resolve names (Lisk)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lisk/code":{"get":{"operationId":"analyzeBytecode_lisk","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Lisk)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lisk/storage":{"get":{"operationId":"readStorage_lisk","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Lisk)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lisk/decode":{"get":{"operationId":"decodeCalldata_lisk","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Lisk)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lisk/multicall":{"get":{"operationId":"batchCalls_lisk","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Lisk)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lisk/balance":{"get":{"operationId":"addressBalance_lisk","summary":"Native balance, nonce, and EOA/contract state for any address (Lisk)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lisk/block":{"get":{"operationId":"blockInfo_lisk","summary":"Latest or specific block header (gas, base fee, tx count) (Lisk)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lisk/tx":{"get":{"operationId":"txInfo_lisk","summary":"Full transaction details + receipt status by hash (Lisk)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lisk/fees":{"get":{"operationId":"feeInfo_lisk","summary":"Current gas price + EIP-1559 fee estimate for any chain (Lisk)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lisk/erc165":{"get":{"operationId":"interfaceSupport_lisk","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Lisk)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lisk/call":{"get":{"operationId":"ethCall_lisk","summary":"Read-only eth_call to any view function on any contract (Lisk)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lisk/estimategas":{"get":{"operationId":"estimateGasFor_lisk","summary":"Estimate gas for a transaction before submitting it (Lisk)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lisk/tokenbalances":{"get":{"operationId":"tokenBalances_lisk","summary":"ERC-20 balances for one address across many tokens at once (Lisk)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lisk/feehistory":{"get":{"operationId":"feeHistory_lisk","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Lisk)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lisk/blocktxs":{"get":{"operationId":"blockTxs_lisk","summary":"List the transactions in a block (from/to/value) (Lisk)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lisk/nativebalances":{"get":{"operationId":"nativeBalances_lisk","summary":"Native coin balances for many addresses at once (Lisk)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lisk/storagebatch":{"get":{"operationId":"storageBatch_lisk","summary":"Read multiple raw storage slots of a contract at once (Lisk)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lisk/chaininfo":{"get":{"operationId":"chainInfo_lisk","summary":"chainId, latest block, gas price, and native symbol for a chain (Lisk)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lisk/receipt":{"get":{"operationId":"receiptInfo_lisk","summary":"Full transaction receipt with event logs by hash (Lisk)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lisk/erc20meta":{"get":{"operationId":"erc20Meta_lisk","summary":"name / symbol / decimals / totalSupply for many tokens at once (Lisk)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lisk/erc1271":{"get":{"operationId":"verifyErc1271_lisk","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Lisk)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/boba/token":{"get":{"operationId":"resolveToken_boba","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Boba)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/boba/nft":{"get":{"operationId":"nftInfo_boba","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Boba)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/boba/safe":{"get":{"operationId":"safeInfo_boba","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Boba)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/boba/txstatus":{"get":{"operationId":"txStatus_boba","summary":"Did my tx land? status, gas, revert detection (Boba)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/boba/simulate":{"get":{"operationId":"simulateCall_boba","summary":"Will this tx revert? + gas estimate, before signing (Boba)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/boba/abi":{"get":{"operationId":"contractAbi_boba","summary":"Recover a contract's function selectors from bytecode + resolve names (Boba)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/boba/code":{"get":{"operationId":"analyzeBytecode_boba","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Boba)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/boba/storage":{"get":{"operationId":"readStorage_boba","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Boba)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/boba/decode":{"get":{"operationId":"decodeCalldata_boba","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Boba)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/boba/multicall":{"get":{"operationId":"batchCalls_boba","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Boba)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/boba/balance":{"get":{"operationId":"addressBalance_boba","summary":"Native balance, nonce, and EOA/contract state for any address (Boba)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/boba/block":{"get":{"operationId":"blockInfo_boba","summary":"Latest or specific block header (gas, base fee, tx count) (Boba)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/boba/tx":{"get":{"operationId":"txInfo_boba","summary":"Full transaction details + receipt status by hash (Boba)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/boba/fees":{"get":{"operationId":"feeInfo_boba","summary":"Current gas price + EIP-1559 fee estimate for any chain (Boba)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/boba/erc165":{"get":{"operationId":"interfaceSupport_boba","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Boba)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/boba/call":{"get":{"operationId":"ethCall_boba","summary":"Read-only eth_call to any view function on any contract (Boba)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/boba/estimategas":{"get":{"operationId":"estimateGasFor_boba","summary":"Estimate gas for a transaction before submitting it (Boba)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/boba/tokenbalances":{"get":{"operationId":"tokenBalances_boba","summary":"ERC-20 balances for one address across many tokens at once (Boba)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/boba/feehistory":{"get":{"operationId":"feeHistory_boba","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Boba)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/boba/blocktxs":{"get":{"operationId":"blockTxs_boba","summary":"List the transactions in a block (from/to/value) (Boba)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/boba/nativebalances":{"get":{"operationId":"nativeBalances_boba","summary":"Native coin balances for many addresses at once (Boba)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/boba/storagebatch":{"get":{"operationId":"storageBatch_boba","summary":"Read multiple raw storage slots of a contract at once (Boba)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/boba/chaininfo":{"get":{"operationId":"chainInfo_boba","summary":"chainId, latest block, gas price, and native symbol for a chain (Boba)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/boba/receipt":{"get":{"operationId":"receiptInfo_boba","summary":"Full transaction receipt with event logs by hash (Boba)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/boba/erc20meta":{"get":{"operationId":"erc20Meta_boba","summary":"name / symbol / decimals / totalSupply for many tokens at once (Boba)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/boba/erc1271":{"get":{"operationId":"verifyErc1271_boba","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Boba)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/unichain/token":{"get":{"operationId":"resolveToken_unichain","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Unichain)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/unichain/nft":{"get":{"operationId":"nftInfo_unichain","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Unichain)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/unichain/safe":{"get":{"operationId":"safeInfo_unichain","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Unichain)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/unichain/txstatus":{"get":{"operationId":"txStatus_unichain","summary":"Did my tx land? status, gas, revert detection (Unichain)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/unichain/simulate":{"get":{"operationId":"simulateCall_unichain","summary":"Will this tx revert? + gas estimate, before signing (Unichain)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/unichain/abi":{"get":{"operationId":"contractAbi_unichain","summary":"Recover a contract's function selectors from bytecode + resolve names (Unichain)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/unichain/code":{"get":{"operationId":"analyzeBytecode_unichain","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Unichain)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/unichain/storage":{"get":{"operationId":"readStorage_unichain","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Unichain)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/unichain/decode":{"get":{"operationId":"decodeCalldata_unichain","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Unichain)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/unichain/multicall":{"get":{"operationId":"batchCalls_unichain","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Unichain)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/unichain/balance":{"get":{"operationId":"addressBalance_unichain","summary":"Native balance, nonce, and EOA/contract state for any address (Unichain)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/unichain/block":{"get":{"operationId":"blockInfo_unichain","summary":"Latest or specific block header (gas, base fee, tx count) (Unichain)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/unichain/tx":{"get":{"operationId":"txInfo_unichain","summary":"Full transaction details + receipt status by hash (Unichain)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/unichain/fees":{"get":{"operationId":"feeInfo_unichain","summary":"Current gas price + EIP-1559 fee estimate for any chain (Unichain)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/unichain/erc165":{"get":{"operationId":"interfaceSupport_unichain","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Unichain)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/unichain/call":{"get":{"operationId":"ethCall_unichain","summary":"Read-only eth_call to any view function on any contract (Unichain)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/unichain/estimategas":{"get":{"operationId":"estimateGasFor_unichain","summary":"Estimate gas for a transaction before submitting it (Unichain)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/unichain/tokenbalances":{"get":{"operationId":"tokenBalances_unichain","summary":"ERC-20 balances for one address across many tokens at once (Unichain)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/unichain/feehistory":{"get":{"operationId":"feeHistory_unichain","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Unichain)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/unichain/blocktxs":{"get":{"operationId":"blockTxs_unichain","summary":"List the transactions in a block (from/to/value) (Unichain)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/unichain/nativebalances":{"get":{"operationId":"nativeBalances_unichain","summary":"Native coin balances for many addresses at once (Unichain)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/unichain/storagebatch":{"get":{"operationId":"storageBatch_unichain","summary":"Read multiple raw storage slots of a contract at once (Unichain)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/unichain/chaininfo":{"get":{"operationId":"chainInfo_unichain","summary":"chainId, latest block, gas price, and native symbol for a chain (Unichain)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/unichain/receipt":{"get":{"operationId":"receiptInfo_unichain","summary":"Full transaction receipt with event logs by hash (Unichain)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/unichain/erc20meta":{"get":{"operationId":"erc20Meta_unichain","summary":"name / symbol / decimals / totalSupply for many tokens at once (Unichain)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/unichain/erc1271":{"get":{"operationId":"verifyErc1271_unichain","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Unichain)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/aurora/token":{"get":{"operationId":"resolveToken_aurora","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Aurora)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/aurora/nft":{"get":{"operationId":"nftInfo_aurora","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Aurora)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/aurora/safe":{"get":{"operationId":"safeInfo_aurora","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Aurora)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/aurora/txstatus":{"get":{"operationId":"txStatus_aurora","summary":"Did my tx land? status, gas, revert detection (Aurora)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/aurora/simulate":{"get":{"operationId":"simulateCall_aurora","summary":"Will this tx revert? + gas estimate, before signing (Aurora)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/aurora/abi":{"get":{"operationId":"contractAbi_aurora","summary":"Recover a contract's function selectors from bytecode + resolve names (Aurora)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/aurora/code":{"get":{"operationId":"analyzeBytecode_aurora","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Aurora)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/aurora/storage":{"get":{"operationId":"readStorage_aurora","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Aurora)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/aurora/decode":{"get":{"operationId":"decodeCalldata_aurora","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Aurora)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/aurora/multicall":{"get":{"operationId":"batchCalls_aurora","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Aurora)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/aurora/balance":{"get":{"operationId":"addressBalance_aurora","summary":"Native balance, nonce, and EOA/contract state for any address (Aurora)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/aurora/block":{"get":{"operationId":"blockInfo_aurora","summary":"Latest or specific block header (gas, base fee, tx count) (Aurora)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/aurora/tx":{"get":{"operationId":"txInfo_aurora","summary":"Full transaction details + receipt status by hash (Aurora)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/aurora/fees":{"get":{"operationId":"feeInfo_aurora","summary":"Current gas price + EIP-1559 fee estimate for any chain (Aurora)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/aurora/erc165":{"get":{"operationId":"interfaceSupport_aurora","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Aurora)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/aurora/call":{"get":{"operationId":"ethCall_aurora","summary":"Read-only eth_call to any view function on any contract (Aurora)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/aurora/estimategas":{"get":{"operationId":"estimateGasFor_aurora","summary":"Estimate gas for a transaction before submitting it (Aurora)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/aurora/tokenbalances":{"get":{"operationId":"tokenBalances_aurora","summary":"ERC-20 balances for one address across many tokens at once (Aurora)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/aurora/feehistory":{"get":{"operationId":"feeHistory_aurora","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Aurora)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/aurora/blocktxs":{"get":{"operationId":"blockTxs_aurora","summary":"List the transactions in a block (from/to/value) (Aurora)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/aurora/nativebalances":{"get":{"operationId":"nativeBalances_aurora","summary":"Native coin balances for many addresses at once (Aurora)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/aurora/storagebatch":{"get":{"operationId":"storageBatch_aurora","summary":"Read multiple raw storage slots of a contract at once (Aurora)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/aurora/chaininfo":{"get":{"operationId":"chainInfo_aurora","summary":"chainId, latest block, gas price, and native symbol for a chain (Aurora)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/aurora/receipt":{"get":{"operationId":"receiptInfo_aurora","summary":"Full transaction receipt with event logs by hash (Aurora)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/aurora/erc20meta":{"get":{"operationId":"erc20Meta_aurora","summary":"name / symbol / decimals / totalSupply for many tokens at once (Aurora)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/aurora/erc1271":{"get":{"operationId":"verifyErc1271_aurora","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Aurora)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/astar/token":{"get":{"operationId":"resolveToken_astar","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Astar)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/astar/nft":{"get":{"operationId":"nftInfo_astar","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Astar)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/astar/safe":{"get":{"operationId":"safeInfo_astar","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Astar)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/astar/txstatus":{"get":{"operationId":"txStatus_astar","summary":"Did my tx land? status, gas, revert detection (Astar)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/astar/simulate":{"get":{"operationId":"simulateCall_astar","summary":"Will this tx revert? + gas estimate, before signing (Astar)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/astar/abi":{"get":{"operationId":"contractAbi_astar","summary":"Recover a contract's function selectors from bytecode + resolve names (Astar)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/astar/code":{"get":{"operationId":"analyzeBytecode_astar","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Astar)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/astar/storage":{"get":{"operationId":"readStorage_astar","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Astar)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/astar/decode":{"get":{"operationId":"decodeCalldata_astar","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Astar)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/astar/multicall":{"get":{"operationId":"batchCalls_astar","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Astar)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/astar/balance":{"get":{"operationId":"addressBalance_astar","summary":"Native balance, nonce, and EOA/contract state for any address (Astar)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/astar/block":{"get":{"operationId":"blockInfo_astar","summary":"Latest or specific block header (gas, base fee, tx count) (Astar)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/astar/tx":{"get":{"operationId":"txInfo_astar","summary":"Full transaction details + receipt status by hash (Astar)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/astar/fees":{"get":{"operationId":"feeInfo_astar","summary":"Current gas price + EIP-1559 fee estimate for any chain (Astar)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/astar/erc165":{"get":{"operationId":"interfaceSupport_astar","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Astar)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/astar/call":{"get":{"operationId":"ethCall_astar","summary":"Read-only eth_call to any view function on any contract (Astar)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/astar/estimategas":{"get":{"operationId":"estimateGasFor_astar","summary":"Estimate gas for a transaction before submitting it (Astar)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/astar/tokenbalances":{"get":{"operationId":"tokenBalances_astar","summary":"ERC-20 balances for one address across many tokens at once (Astar)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/astar/feehistory":{"get":{"operationId":"feeHistory_astar","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Astar)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/astar/blocktxs":{"get":{"operationId":"blockTxs_astar","summary":"List the transactions in a block (from/to/value) (Astar)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/astar/nativebalances":{"get":{"operationId":"nativeBalances_astar","summary":"Native coin balances for many addresses at once (Astar)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/astar/storagebatch":{"get":{"operationId":"storageBatch_astar","summary":"Read multiple raw storage slots of a contract at once (Astar)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/astar/chaininfo":{"get":{"operationId":"chainInfo_astar","summary":"chainId, latest block, gas price, and native symbol for a chain (Astar)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/astar/receipt":{"get":{"operationId":"receiptInfo_astar","summary":"Full transaction receipt with event logs by hash (Astar)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/astar/erc20meta":{"get":{"operationId":"erc20Meta_astar","summary":"name / symbol / decimals / totalSupply for many tokens at once (Astar)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/astar/erc1271":{"get":{"operationId":"verifyErc1271_astar","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Astar)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/flare/token":{"get":{"operationId":"resolveToken_flare","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Flare)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/flare/nft":{"get":{"operationId":"nftInfo_flare","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Flare)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/flare/safe":{"get":{"operationId":"safeInfo_flare","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Flare)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/flare/txstatus":{"get":{"operationId":"txStatus_flare","summary":"Did my tx land? status, gas, revert detection (Flare)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/flare/simulate":{"get":{"operationId":"simulateCall_flare","summary":"Will this tx revert? + gas estimate, before signing (Flare)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/flare/abi":{"get":{"operationId":"contractAbi_flare","summary":"Recover a contract's function selectors from bytecode + resolve names (Flare)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/flare/code":{"get":{"operationId":"analyzeBytecode_flare","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Flare)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/flare/storage":{"get":{"operationId":"readStorage_flare","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Flare)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/flare/decode":{"get":{"operationId":"decodeCalldata_flare","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Flare)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/flare/multicall":{"get":{"operationId":"batchCalls_flare","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Flare)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/flare/balance":{"get":{"operationId":"addressBalance_flare","summary":"Native balance, nonce, and EOA/contract state for any address (Flare)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/flare/block":{"get":{"operationId":"blockInfo_flare","summary":"Latest or specific block header (gas, base fee, tx count) (Flare)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/flare/tx":{"get":{"operationId":"txInfo_flare","summary":"Full transaction details + receipt status by hash (Flare)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/flare/fees":{"get":{"operationId":"feeInfo_flare","summary":"Current gas price + EIP-1559 fee estimate for any chain (Flare)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/flare/erc165":{"get":{"operationId":"interfaceSupport_flare","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Flare)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/flare/call":{"get":{"operationId":"ethCall_flare","summary":"Read-only eth_call to any view function on any contract (Flare)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/flare/estimategas":{"get":{"operationId":"estimateGasFor_flare","summary":"Estimate gas for a transaction before submitting it (Flare)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/flare/tokenbalances":{"get":{"operationId":"tokenBalances_flare","summary":"ERC-20 balances for one address across many tokens at once (Flare)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/flare/feehistory":{"get":{"operationId":"feeHistory_flare","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Flare)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/flare/blocktxs":{"get":{"operationId":"blockTxs_flare","summary":"List the transactions in a block (from/to/value) (Flare)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/flare/nativebalances":{"get":{"operationId":"nativeBalances_flare","summary":"Native coin balances for many addresses at once (Flare)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/flare/storagebatch":{"get":{"operationId":"storageBatch_flare","summary":"Read multiple raw storage slots of a contract at once (Flare)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/flare/chaininfo":{"get":{"operationId":"chainInfo_flare","summary":"chainId, latest block, gas price, and native symbol for a chain (Flare)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/flare/receipt":{"get":{"operationId":"receiptInfo_flare","summary":"Full transaction receipt with event logs by hash (Flare)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/flare/erc20meta":{"get":{"operationId":"erc20Meta_flare","summary":"name / symbol / decimals / totalSupply for many tokens at once (Flare)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/flare/erc1271":{"get":{"operationId":"verifyErc1271_flare","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Flare)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kaia/token":{"get":{"operationId":"resolveToken_kaia","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Kaia)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kaia/nft":{"get":{"operationId":"nftInfo_kaia","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Kaia)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kaia/safe":{"get":{"operationId":"safeInfo_kaia","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Kaia)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kaia/txstatus":{"get":{"operationId":"txStatus_kaia","summary":"Did my tx land? status, gas, revert detection (Kaia)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kaia/simulate":{"get":{"operationId":"simulateCall_kaia","summary":"Will this tx revert? + gas estimate, before signing (Kaia)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kaia/abi":{"get":{"operationId":"contractAbi_kaia","summary":"Recover a contract's function selectors from bytecode + resolve names (Kaia)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kaia/code":{"get":{"operationId":"analyzeBytecode_kaia","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Kaia)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kaia/storage":{"get":{"operationId":"readStorage_kaia","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Kaia)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kaia/decode":{"get":{"operationId":"decodeCalldata_kaia","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Kaia)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kaia/multicall":{"get":{"operationId":"batchCalls_kaia","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Kaia)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kaia/balance":{"get":{"operationId":"addressBalance_kaia","summary":"Native balance, nonce, and EOA/contract state for any address (Kaia)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kaia/block":{"get":{"operationId":"blockInfo_kaia","summary":"Latest or specific block header (gas, base fee, tx count) (Kaia)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kaia/tx":{"get":{"operationId":"txInfo_kaia","summary":"Full transaction details + receipt status by hash (Kaia)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kaia/fees":{"get":{"operationId":"feeInfo_kaia","summary":"Current gas price + EIP-1559 fee estimate for any chain (Kaia)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kaia/erc165":{"get":{"operationId":"interfaceSupport_kaia","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Kaia)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kaia/call":{"get":{"operationId":"ethCall_kaia","summary":"Read-only eth_call to any view function on any contract (Kaia)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kaia/estimategas":{"get":{"operationId":"estimateGasFor_kaia","summary":"Estimate gas for a transaction before submitting it (Kaia)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kaia/tokenbalances":{"get":{"operationId":"tokenBalances_kaia","summary":"ERC-20 balances for one address across many tokens at once (Kaia)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kaia/feehistory":{"get":{"operationId":"feeHistory_kaia","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Kaia)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kaia/blocktxs":{"get":{"operationId":"blockTxs_kaia","summary":"List the transactions in a block (from/to/value) (Kaia)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kaia/nativebalances":{"get":{"operationId":"nativeBalances_kaia","summary":"Native coin balances for many addresses at once (Kaia)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kaia/storagebatch":{"get":{"operationId":"storageBatch_kaia","summary":"Read multiple raw storage slots of a contract at once (Kaia)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kaia/chaininfo":{"get":{"operationId":"chainInfo_kaia","summary":"chainId, latest block, gas price, and native symbol for a chain (Kaia)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kaia/receipt":{"get":{"operationId":"receiptInfo_kaia","summary":"Full transaction receipt with event logs by hash (Kaia)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kaia/erc20meta":{"get":{"operationId":"erc20Meta_kaia","summary":"name / symbol / decimals / totalSupply for many tokens at once (Kaia)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/kaia/erc1271":{"get":{"operationId":"verifyErc1271_kaia","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Kaia)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sonic/token":{"get":{"operationId":"resolveToken_sonic","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Sonic)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sonic/nft":{"get":{"operationId":"nftInfo_sonic","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Sonic)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sonic/safe":{"get":{"operationId":"safeInfo_sonic","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Sonic)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sonic/txstatus":{"get":{"operationId":"txStatus_sonic","summary":"Did my tx land? status, gas, revert detection (Sonic)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sonic/simulate":{"get":{"operationId":"simulateCall_sonic","summary":"Will this tx revert? + gas estimate, before signing (Sonic)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sonic/abi":{"get":{"operationId":"contractAbi_sonic","summary":"Recover a contract's function selectors from bytecode + resolve names (Sonic)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sonic/code":{"get":{"operationId":"analyzeBytecode_sonic","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Sonic)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sonic/storage":{"get":{"operationId":"readStorage_sonic","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Sonic)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sonic/decode":{"get":{"operationId":"decodeCalldata_sonic","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Sonic)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sonic/multicall":{"get":{"operationId":"batchCalls_sonic","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Sonic)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sonic/balance":{"get":{"operationId":"addressBalance_sonic","summary":"Native balance, nonce, and EOA/contract state for any address (Sonic)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sonic/block":{"get":{"operationId":"blockInfo_sonic","summary":"Latest or specific block header (gas, base fee, tx count) (Sonic)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sonic/tx":{"get":{"operationId":"txInfo_sonic","summary":"Full transaction details + receipt status by hash (Sonic)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sonic/fees":{"get":{"operationId":"feeInfo_sonic","summary":"Current gas price + EIP-1559 fee estimate for any chain (Sonic)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sonic/erc165":{"get":{"operationId":"interfaceSupport_sonic","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Sonic)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sonic/call":{"get":{"operationId":"ethCall_sonic","summary":"Read-only eth_call to any view function on any contract (Sonic)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sonic/estimategas":{"get":{"operationId":"estimateGasFor_sonic","summary":"Estimate gas for a transaction before submitting it (Sonic)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sonic/tokenbalances":{"get":{"operationId":"tokenBalances_sonic","summary":"ERC-20 balances for one address across many tokens at once (Sonic)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sonic/feehistory":{"get":{"operationId":"feeHistory_sonic","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Sonic)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sonic/blocktxs":{"get":{"operationId":"blockTxs_sonic","summary":"List the transactions in a block (from/to/value) (Sonic)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sonic/nativebalances":{"get":{"operationId":"nativeBalances_sonic","summary":"Native coin balances for many addresses at once (Sonic)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sonic/storagebatch":{"get":{"operationId":"storageBatch_sonic","summary":"Read multiple raw storage slots of a contract at once (Sonic)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sonic/chaininfo":{"get":{"operationId":"chainInfo_sonic","summary":"chainId, latest block, gas price, and native symbol for a chain (Sonic)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sonic/receipt":{"get":{"operationId":"receiptInfo_sonic","summary":"Full transaction receipt with event logs by hash (Sonic)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sonic/erc20meta":{"get":{"operationId":"erc20Meta_sonic","summary":"name / symbol / decimals / totalSupply for many tokens at once (Sonic)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sonic/erc1271":{"get":{"operationId":"verifyErc1271_sonic","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Sonic)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/berachain/token":{"get":{"operationId":"resolveToken_berachain","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Berachain)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/berachain/nft":{"get":{"operationId":"nftInfo_berachain","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Berachain)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/berachain/safe":{"get":{"operationId":"safeInfo_berachain","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Berachain)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/berachain/txstatus":{"get":{"operationId":"txStatus_berachain","summary":"Did my tx land? status, gas, revert detection (Berachain)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/berachain/simulate":{"get":{"operationId":"simulateCall_berachain","summary":"Will this tx revert? + gas estimate, before signing (Berachain)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/berachain/abi":{"get":{"operationId":"contractAbi_berachain","summary":"Recover a contract's function selectors from bytecode + resolve names (Berachain)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/berachain/code":{"get":{"operationId":"analyzeBytecode_berachain","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Berachain)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/berachain/storage":{"get":{"operationId":"readStorage_berachain","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Berachain)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/berachain/decode":{"get":{"operationId":"decodeCalldata_berachain","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Berachain)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/berachain/multicall":{"get":{"operationId":"batchCalls_berachain","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Berachain)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/berachain/balance":{"get":{"operationId":"addressBalance_berachain","summary":"Native balance, nonce, and EOA/contract state for any address (Berachain)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/berachain/block":{"get":{"operationId":"blockInfo_berachain","summary":"Latest or specific block header (gas, base fee, tx count) (Berachain)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/berachain/tx":{"get":{"operationId":"txInfo_berachain","summary":"Full transaction details + receipt status by hash (Berachain)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/berachain/fees":{"get":{"operationId":"feeInfo_berachain","summary":"Current gas price + EIP-1559 fee estimate for any chain (Berachain)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/berachain/erc165":{"get":{"operationId":"interfaceSupport_berachain","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Berachain)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/berachain/call":{"get":{"operationId":"ethCall_berachain","summary":"Read-only eth_call to any view function on any contract (Berachain)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/berachain/estimategas":{"get":{"operationId":"estimateGasFor_berachain","summary":"Estimate gas for a transaction before submitting it (Berachain)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/berachain/tokenbalances":{"get":{"operationId":"tokenBalances_berachain","summary":"ERC-20 balances for one address across many tokens at once (Berachain)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/berachain/feehistory":{"get":{"operationId":"feeHistory_berachain","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Berachain)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/berachain/blocktxs":{"get":{"operationId":"blockTxs_berachain","summary":"List the transactions in a block (from/to/value) (Berachain)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/berachain/nativebalances":{"get":{"operationId":"nativeBalances_berachain","summary":"Native coin balances for many addresses at once (Berachain)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/berachain/storagebatch":{"get":{"operationId":"storageBatch_berachain","summary":"Read multiple raw storage slots of a contract at once (Berachain)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/berachain/chaininfo":{"get":{"operationId":"chainInfo_berachain","summary":"chainId, latest block, gas price, and native symbol for a chain (Berachain)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/berachain/receipt":{"get":{"operationId":"receiptInfo_berachain","summary":"Full transaction receipt with event logs by hash (Berachain)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/berachain/erc20meta":{"get":{"operationId":"erc20Meta_berachain","summary":"name / symbol / decimals / totalSupply for many tokens at once (Berachain)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/berachain/erc1271":{"get":{"operationId":"verifyErc1271_berachain","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Berachain)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ink/token":{"get":{"operationId":"resolveToken_ink","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Ink)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ink/nft":{"get":{"operationId":"nftInfo_ink","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Ink)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ink/safe":{"get":{"operationId":"safeInfo_ink","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Ink)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ink/txstatus":{"get":{"operationId":"txStatus_ink","summary":"Did my tx land? status, gas, revert detection (Ink)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ink/simulate":{"get":{"operationId":"simulateCall_ink","summary":"Will this tx revert? + gas estimate, before signing (Ink)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ink/abi":{"get":{"operationId":"contractAbi_ink","summary":"Recover a contract's function selectors from bytecode + resolve names (Ink)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ink/code":{"get":{"operationId":"analyzeBytecode_ink","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Ink)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ink/storage":{"get":{"operationId":"readStorage_ink","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Ink)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ink/decode":{"get":{"operationId":"decodeCalldata_ink","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Ink)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ink/multicall":{"get":{"operationId":"batchCalls_ink","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Ink)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ink/balance":{"get":{"operationId":"addressBalance_ink","summary":"Native balance, nonce, and EOA/contract state for any address (Ink)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ink/block":{"get":{"operationId":"blockInfo_ink","summary":"Latest or specific block header (gas, base fee, tx count) (Ink)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ink/tx":{"get":{"operationId":"txInfo_ink","summary":"Full transaction details + receipt status by hash (Ink)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ink/fees":{"get":{"operationId":"feeInfo_ink","summary":"Current gas price + EIP-1559 fee estimate for any chain (Ink)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ink/erc165":{"get":{"operationId":"interfaceSupport_ink","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Ink)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ink/call":{"get":{"operationId":"ethCall_ink","summary":"Read-only eth_call to any view function on any contract (Ink)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ink/estimategas":{"get":{"operationId":"estimateGasFor_ink","summary":"Estimate gas for a transaction before submitting it (Ink)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ink/tokenbalances":{"get":{"operationId":"tokenBalances_ink","summary":"ERC-20 balances for one address across many tokens at once (Ink)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ink/feehistory":{"get":{"operationId":"feeHistory_ink","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Ink)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ink/blocktxs":{"get":{"operationId":"blockTxs_ink","summary":"List the transactions in a block (from/to/value) (Ink)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ink/nativebalances":{"get":{"operationId":"nativeBalances_ink","summary":"Native coin balances for many addresses at once (Ink)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ink/storagebatch":{"get":{"operationId":"storageBatch_ink","summary":"Read multiple raw storage slots of a contract at once (Ink)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ink/chaininfo":{"get":{"operationId":"chainInfo_ink","summary":"chainId, latest block, gas price, and native symbol for a chain (Ink)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ink/receipt":{"get":{"operationId":"receiptInfo_ink","summary":"Full transaction receipt with event logs by hash (Ink)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ink/erc20meta":{"get":{"operationId":"erc20Meta_ink","summary":"name / symbol / decimals / totalSupply for many tokens at once (Ink)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ink/erc1271":{"get":{"operationId":"verifyErc1271_ink","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Ink)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/soneium/token":{"get":{"operationId":"resolveToken_soneium","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Soneium)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/soneium/nft":{"get":{"operationId":"nftInfo_soneium","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Soneium)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/soneium/safe":{"get":{"operationId":"safeInfo_soneium","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Soneium)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/soneium/txstatus":{"get":{"operationId":"txStatus_soneium","summary":"Did my tx land? status, gas, revert detection (Soneium)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/soneium/simulate":{"get":{"operationId":"simulateCall_soneium","summary":"Will this tx revert? + gas estimate, before signing (Soneium)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/soneium/abi":{"get":{"operationId":"contractAbi_soneium","summary":"Recover a contract's function selectors from bytecode + resolve names (Soneium)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/soneium/code":{"get":{"operationId":"analyzeBytecode_soneium","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Soneium)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/soneium/storage":{"get":{"operationId":"readStorage_soneium","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Soneium)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/soneium/decode":{"get":{"operationId":"decodeCalldata_soneium","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Soneium)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/soneium/multicall":{"get":{"operationId":"batchCalls_soneium","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Soneium)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/soneium/balance":{"get":{"operationId":"addressBalance_soneium","summary":"Native balance, nonce, and EOA/contract state for any address (Soneium)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/soneium/block":{"get":{"operationId":"blockInfo_soneium","summary":"Latest or specific block header (gas, base fee, tx count) (Soneium)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/soneium/tx":{"get":{"operationId":"txInfo_soneium","summary":"Full transaction details + receipt status by hash (Soneium)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/soneium/fees":{"get":{"operationId":"feeInfo_soneium","summary":"Current gas price + EIP-1559 fee estimate for any chain (Soneium)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/soneium/erc165":{"get":{"operationId":"interfaceSupport_soneium","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Soneium)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/soneium/call":{"get":{"operationId":"ethCall_soneium","summary":"Read-only eth_call to any view function on any contract (Soneium)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/soneium/estimategas":{"get":{"operationId":"estimateGasFor_soneium","summary":"Estimate gas for a transaction before submitting it (Soneium)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/soneium/tokenbalances":{"get":{"operationId":"tokenBalances_soneium","summary":"ERC-20 balances for one address across many tokens at once (Soneium)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/soneium/feehistory":{"get":{"operationId":"feeHistory_soneium","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Soneium)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/soneium/blocktxs":{"get":{"operationId":"blockTxs_soneium","summary":"List the transactions in a block (from/to/value) (Soneium)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/soneium/nativebalances":{"get":{"operationId":"nativeBalances_soneium","summary":"Native coin balances for many addresses at once (Soneium)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/soneium/storagebatch":{"get":{"operationId":"storageBatch_soneium","summary":"Read multiple raw storage slots of a contract at once (Soneium)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/soneium/chaininfo":{"get":{"operationId":"chainInfo_soneium","summary":"chainId, latest block, gas price, and native symbol for a chain (Soneium)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/soneium/receipt":{"get":{"operationId":"receiptInfo_soneium","summary":"Full transaction receipt with event logs by hash (Soneium)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/soneium/erc20meta":{"get":{"operationId":"erc20Meta_soneium","summary":"name / symbol / decimals / totalSupply for many tokens at once (Soneium)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/soneium/erc1271":{"get":{"operationId":"verifyErc1271_soneium","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Soneium)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bob/token":{"get":{"operationId":"resolveToken_bob","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (BOB)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bob/nft":{"get":{"operationId":"nftInfo_bob","summary":"ERC-721/1155 detection + collection + per-token owner/URI (BOB)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bob/safe":{"get":{"operationId":"safeInfo_bob","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (BOB)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bob/txstatus":{"get":{"operationId":"txStatus_bob","summary":"Did my tx land? status, gas, revert detection (BOB)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bob/simulate":{"get":{"operationId":"simulateCall_bob","summary":"Will this tx revert? + gas estimate, before signing (BOB)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bob/abi":{"get":{"operationId":"contractAbi_bob","summary":"Recover a contract's function selectors from bytecode + resolve names (BOB)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bob/code":{"get":{"operationId":"analyzeBytecode_bob","summary":"Proxy detection, dangerous opcodes, codehash for any contract (BOB)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bob/storage":{"get":{"operationId":"readStorage_bob","summary":"Read any raw contract storage slot, decoded as uint/address/bool (BOB)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bob/decode":{"get":{"operationId":"decodeCalldata_bob","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (BOB)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bob/multicall":{"get":{"operationId":"batchCalls_bob","summary":"Run up to 20 arbitrary read-only calls in one eth_call (BOB)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bob/balance":{"get":{"operationId":"addressBalance_bob","summary":"Native balance, nonce, and EOA/contract state for any address (BOB)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bob/block":{"get":{"operationId":"blockInfo_bob","summary":"Latest or specific block header (gas, base fee, tx count) (BOB)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bob/tx":{"get":{"operationId":"txInfo_bob","summary":"Full transaction details + receipt status by hash (BOB)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bob/fees":{"get":{"operationId":"feeInfo_bob","summary":"Current gas price + EIP-1559 fee estimate for any chain (BOB)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bob/erc165":{"get":{"operationId":"interfaceSupport_bob","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (BOB)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bob/call":{"get":{"operationId":"ethCall_bob","summary":"Read-only eth_call to any view function on any contract (BOB)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bob/estimategas":{"get":{"operationId":"estimateGasFor_bob","summary":"Estimate gas for a transaction before submitting it (BOB)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bob/tokenbalances":{"get":{"operationId":"tokenBalances_bob","summary":"ERC-20 balances for one address across many tokens at once (BOB)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bob/feehistory":{"get":{"operationId":"feeHistory_bob","summary":"Base-fee trend + priority-fee percentiles over recent blocks (BOB)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bob/blocktxs":{"get":{"operationId":"blockTxs_bob","summary":"List the transactions in a block (from/to/value) (BOB)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bob/nativebalances":{"get":{"operationId":"nativeBalances_bob","summary":"Native coin balances for many addresses at once (BOB)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bob/storagebatch":{"get":{"operationId":"storageBatch_bob","summary":"Read multiple raw storage slots of a contract at once (BOB)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bob/chaininfo":{"get":{"operationId":"chainInfo_bob","summary":"chainId, latest block, gas price, and native symbol for a chain (BOB)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bob/receipt":{"get":{"operationId":"receiptInfo_bob","summary":"Full transaction receipt with event logs by hash (BOB)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bob/erc20meta":{"get":{"operationId":"erc20Meta_bob","summary":"name / symbol / decimals / totalSupply for many tokens at once (BOB)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bob/erc1271":{"get":{"operationId":"verifyErc1271_bob","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (BOB)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/worldchain/token":{"get":{"operationId":"resolveToken_worldchain","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (World Chain)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/worldchain/nft":{"get":{"operationId":"nftInfo_worldchain","summary":"ERC-721/1155 detection + collection + per-token owner/URI (World Chain)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/worldchain/safe":{"get":{"operationId":"safeInfo_worldchain","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (World Chain)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/worldchain/txstatus":{"get":{"operationId":"txStatus_worldchain","summary":"Did my tx land? status, gas, revert detection (World Chain)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/worldchain/simulate":{"get":{"operationId":"simulateCall_worldchain","summary":"Will this tx revert? + gas estimate, before signing (World Chain)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/worldchain/abi":{"get":{"operationId":"contractAbi_worldchain","summary":"Recover a contract's function selectors from bytecode + resolve names (World Chain)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/worldchain/code":{"get":{"operationId":"analyzeBytecode_worldchain","summary":"Proxy detection, dangerous opcodes, codehash for any contract (World Chain)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/worldchain/storage":{"get":{"operationId":"readStorage_worldchain","summary":"Read any raw contract storage slot, decoded as uint/address/bool (World Chain)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/worldchain/decode":{"get":{"operationId":"decodeCalldata_worldchain","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (World Chain)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/worldchain/multicall":{"get":{"operationId":"batchCalls_worldchain","summary":"Run up to 20 arbitrary read-only calls in one eth_call (World Chain)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/worldchain/balance":{"get":{"operationId":"addressBalance_worldchain","summary":"Native balance, nonce, and EOA/contract state for any address (World Chain)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/worldchain/block":{"get":{"operationId":"blockInfo_worldchain","summary":"Latest or specific block header (gas, base fee, tx count) (World Chain)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/worldchain/tx":{"get":{"operationId":"txInfo_worldchain","summary":"Full transaction details + receipt status by hash (World Chain)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/worldchain/fees":{"get":{"operationId":"feeInfo_worldchain","summary":"Current gas price + EIP-1559 fee estimate for any chain (World Chain)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/worldchain/erc165":{"get":{"operationId":"interfaceSupport_worldchain","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (World Chain)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/worldchain/call":{"get":{"operationId":"ethCall_worldchain","summary":"Read-only eth_call to any view function on any contract (World Chain)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/worldchain/estimategas":{"get":{"operationId":"estimateGasFor_worldchain","summary":"Estimate gas for a transaction before submitting it (World Chain)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/worldchain/tokenbalances":{"get":{"operationId":"tokenBalances_worldchain","summary":"ERC-20 balances for one address across many tokens at once (World Chain)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/worldchain/feehistory":{"get":{"operationId":"feeHistory_worldchain","summary":"Base-fee trend + priority-fee percentiles over recent blocks (World Chain)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/worldchain/blocktxs":{"get":{"operationId":"blockTxs_worldchain","summary":"List the transactions in a block (from/to/value) (World Chain)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/worldchain/nativebalances":{"get":{"operationId":"nativeBalances_worldchain","summary":"Native coin balances for many addresses at once (World Chain)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/worldchain/storagebatch":{"get":{"operationId":"storageBatch_worldchain","summary":"Read multiple raw storage slots of a contract at once (World Chain)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/worldchain/chaininfo":{"get":{"operationId":"chainInfo_worldchain","summary":"chainId, latest block, gas price, and native symbol for a chain (World Chain)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/worldchain/receipt":{"get":{"operationId":"receiptInfo_worldchain","summary":"Full transaction receipt with event logs by hash (World Chain)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/worldchain/erc20meta":{"get":{"operationId":"erc20Meta_worldchain","summary":"name / symbol / decimals / totalSupply for many tokens at once (World Chain)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/worldchain/erc1271":{"get":{"operationId":"verifyErc1271_worldchain","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (World Chain)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zeta/token":{"get":{"operationId":"resolveToken_zeta","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (ZetaChain)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zeta/nft":{"get":{"operationId":"nftInfo_zeta","summary":"ERC-721/1155 detection + collection + per-token owner/URI (ZetaChain)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zeta/safe":{"get":{"operationId":"safeInfo_zeta","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (ZetaChain)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zeta/txstatus":{"get":{"operationId":"txStatus_zeta","summary":"Did my tx land? status, gas, revert detection (ZetaChain)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zeta/simulate":{"get":{"operationId":"simulateCall_zeta","summary":"Will this tx revert? + gas estimate, before signing (ZetaChain)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zeta/abi":{"get":{"operationId":"contractAbi_zeta","summary":"Recover a contract's function selectors from bytecode + resolve names (ZetaChain)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zeta/code":{"get":{"operationId":"analyzeBytecode_zeta","summary":"Proxy detection, dangerous opcodes, codehash for any contract (ZetaChain)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zeta/storage":{"get":{"operationId":"readStorage_zeta","summary":"Read any raw contract storage slot, decoded as uint/address/bool (ZetaChain)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zeta/decode":{"get":{"operationId":"decodeCalldata_zeta","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (ZetaChain)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zeta/multicall":{"get":{"operationId":"batchCalls_zeta","summary":"Run up to 20 arbitrary read-only calls in one eth_call (ZetaChain)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zeta/balance":{"get":{"operationId":"addressBalance_zeta","summary":"Native balance, nonce, and EOA/contract state for any address (ZetaChain)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zeta/block":{"get":{"operationId":"blockInfo_zeta","summary":"Latest or specific block header (gas, base fee, tx count) (ZetaChain)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zeta/tx":{"get":{"operationId":"txInfo_zeta","summary":"Full transaction details + receipt status by hash (ZetaChain)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zeta/fees":{"get":{"operationId":"feeInfo_zeta","summary":"Current gas price + EIP-1559 fee estimate for any chain (ZetaChain)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zeta/erc165":{"get":{"operationId":"interfaceSupport_zeta","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (ZetaChain)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zeta/call":{"get":{"operationId":"ethCall_zeta","summary":"Read-only eth_call to any view function on any contract (ZetaChain)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zeta/estimategas":{"get":{"operationId":"estimateGasFor_zeta","summary":"Estimate gas for a transaction before submitting it (ZetaChain)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zeta/tokenbalances":{"get":{"operationId":"tokenBalances_zeta","summary":"ERC-20 balances for one address across many tokens at once (ZetaChain)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zeta/feehistory":{"get":{"operationId":"feeHistory_zeta","summary":"Base-fee trend + priority-fee percentiles over recent blocks (ZetaChain)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zeta/blocktxs":{"get":{"operationId":"blockTxs_zeta","summary":"List the transactions in a block (from/to/value) (ZetaChain)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zeta/nativebalances":{"get":{"operationId":"nativeBalances_zeta","summary":"Native coin balances for many addresses at once (ZetaChain)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zeta/storagebatch":{"get":{"operationId":"storageBatch_zeta","summary":"Read multiple raw storage slots of a contract at once (ZetaChain)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zeta/chaininfo":{"get":{"operationId":"chainInfo_zeta","summary":"chainId, latest block, gas price, and native symbol for a chain (ZetaChain)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zeta/receipt":{"get":{"operationId":"receiptInfo_zeta","summary":"Full transaction receipt with event logs by hash (ZetaChain)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zeta/erc20meta":{"get":{"operationId":"erc20Meta_zeta","summary":"name / symbol / decimals / totalSupply for many tokens at once (ZetaChain)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zeta/erc1271":{"get":{"operationId":"verifyErc1271_zeta","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (ZetaChain)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/rootstock/token":{"get":{"operationId":"resolveToken_rootstock","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Rootstock)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/rootstock/nft":{"get":{"operationId":"nftInfo_rootstock","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Rootstock)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/rootstock/safe":{"get":{"operationId":"safeInfo_rootstock","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Rootstock)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/rootstock/txstatus":{"get":{"operationId":"txStatus_rootstock","summary":"Did my tx land? status, gas, revert detection (Rootstock)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/rootstock/simulate":{"get":{"operationId":"simulateCall_rootstock","summary":"Will this tx revert? + gas estimate, before signing (Rootstock)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/rootstock/abi":{"get":{"operationId":"contractAbi_rootstock","summary":"Recover a contract's function selectors from bytecode + resolve names (Rootstock)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/rootstock/code":{"get":{"operationId":"analyzeBytecode_rootstock","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Rootstock)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/rootstock/storage":{"get":{"operationId":"readStorage_rootstock","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Rootstock)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/rootstock/decode":{"get":{"operationId":"decodeCalldata_rootstock","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Rootstock)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/rootstock/multicall":{"get":{"operationId":"batchCalls_rootstock","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Rootstock)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/rootstock/balance":{"get":{"operationId":"addressBalance_rootstock","summary":"Native balance, nonce, and EOA/contract state for any address (Rootstock)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/rootstock/block":{"get":{"operationId":"blockInfo_rootstock","summary":"Latest or specific block header (gas, base fee, tx count) (Rootstock)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/rootstock/tx":{"get":{"operationId":"txInfo_rootstock","summary":"Full transaction details + receipt status by hash (Rootstock)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/rootstock/fees":{"get":{"operationId":"feeInfo_rootstock","summary":"Current gas price + EIP-1559 fee estimate for any chain (Rootstock)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/rootstock/erc165":{"get":{"operationId":"interfaceSupport_rootstock","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Rootstock)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/rootstock/call":{"get":{"operationId":"ethCall_rootstock","summary":"Read-only eth_call to any view function on any contract (Rootstock)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/rootstock/estimategas":{"get":{"operationId":"estimateGasFor_rootstock","summary":"Estimate gas for a transaction before submitting it (Rootstock)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/rootstock/tokenbalances":{"get":{"operationId":"tokenBalances_rootstock","summary":"ERC-20 balances for one address across many tokens at once (Rootstock)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/rootstock/feehistory":{"get":{"operationId":"feeHistory_rootstock","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Rootstock)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/rootstock/blocktxs":{"get":{"operationId":"blockTxs_rootstock","summary":"List the transactions in a block (from/to/value) (Rootstock)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/rootstock/nativebalances":{"get":{"operationId":"nativeBalances_rootstock","summary":"Native coin balances for many addresses at once (Rootstock)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/rootstock/storagebatch":{"get":{"operationId":"storageBatch_rootstock","summary":"Read multiple raw storage slots of a contract at once (Rootstock)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/rootstock/chaininfo":{"get":{"operationId":"chainInfo_rootstock","summary":"chainId, latest block, gas price, and native symbol for a chain (Rootstock)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/rootstock/receipt":{"get":{"operationId":"receiptInfo_rootstock","summary":"Full transaction receipt with event logs by hash (Rootstock)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/rootstock/erc20meta":{"get":{"operationId":"erc20Meta_rootstock","summary":"name / symbol / decimals / totalSupply for many tokens at once (Rootstock)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/rootstock/erc1271":{"get":{"operationId":"verifyErc1271_rootstock","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Rootstock)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/harmony/token":{"get":{"operationId":"resolveToken_harmony","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Harmony)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/harmony/nft":{"get":{"operationId":"nftInfo_harmony","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Harmony)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/harmony/safe":{"get":{"operationId":"safeInfo_harmony","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Harmony)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/harmony/txstatus":{"get":{"operationId":"txStatus_harmony","summary":"Did my tx land? status, gas, revert detection (Harmony)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/harmony/simulate":{"get":{"operationId":"simulateCall_harmony","summary":"Will this tx revert? + gas estimate, before signing (Harmony)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/harmony/abi":{"get":{"operationId":"contractAbi_harmony","summary":"Recover a contract's function selectors from bytecode + resolve names (Harmony)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/harmony/code":{"get":{"operationId":"analyzeBytecode_harmony","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Harmony)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/harmony/storage":{"get":{"operationId":"readStorage_harmony","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Harmony)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/harmony/decode":{"get":{"operationId":"decodeCalldata_harmony","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Harmony)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/harmony/multicall":{"get":{"operationId":"batchCalls_harmony","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Harmony)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/harmony/balance":{"get":{"operationId":"addressBalance_harmony","summary":"Native balance, nonce, and EOA/contract state for any address (Harmony)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/harmony/block":{"get":{"operationId":"blockInfo_harmony","summary":"Latest or specific block header (gas, base fee, tx count) (Harmony)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/harmony/tx":{"get":{"operationId":"txInfo_harmony","summary":"Full transaction details + receipt status by hash (Harmony)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/harmony/fees":{"get":{"operationId":"feeInfo_harmony","summary":"Current gas price + EIP-1559 fee estimate for any chain (Harmony)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/harmony/erc165":{"get":{"operationId":"interfaceSupport_harmony","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Harmony)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/harmony/call":{"get":{"operationId":"ethCall_harmony","summary":"Read-only eth_call to any view function on any contract (Harmony)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/harmony/estimategas":{"get":{"operationId":"estimateGasFor_harmony","summary":"Estimate gas for a transaction before submitting it (Harmony)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/harmony/tokenbalances":{"get":{"operationId":"tokenBalances_harmony","summary":"ERC-20 balances for one address across many tokens at once (Harmony)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/harmony/feehistory":{"get":{"operationId":"feeHistory_harmony","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Harmony)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/harmony/blocktxs":{"get":{"operationId":"blockTxs_harmony","summary":"List the transactions in a block (from/to/value) (Harmony)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/harmony/nativebalances":{"get":{"operationId":"nativeBalances_harmony","summary":"Native coin balances for many addresses at once (Harmony)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/harmony/storagebatch":{"get":{"operationId":"storageBatch_harmony","summary":"Read multiple raw storage slots of a contract at once (Harmony)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/harmony/chaininfo":{"get":{"operationId":"chainInfo_harmony","summary":"chainId, latest block, gas price, and native symbol for a chain (Harmony)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/harmony/receipt":{"get":{"operationId":"receiptInfo_harmony","summary":"Full transaction receipt with event logs by hash (Harmony)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/harmony/erc20meta":{"get":{"operationId":"erc20Meta_harmony","summary":"name / symbol / decimals / totalSupply for many tokens at once (Harmony)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/harmony/erc1271":{"get":{"operationId":"verifyErc1271_harmony","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Harmony)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/immutable/token":{"get":{"operationId":"resolveToken_immutable","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Immutable zkEVM)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/immutable/nft":{"get":{"operationId":"nftInfo_immutable","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Immutable zkEVM)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/immutable/safe":{"get":{"operationId":"safeInfo_immutable","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Immutable zkEVM)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/immutable/txstatus":{"get":{"operationId":"txStatus_immutable","summary":"Did my tx land? status, gas, revert detection (Immutable zkEVM)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/immutable/simulate":{"get":{"operationId":"simulateCall_immutable","summary":"Will this tx revert? + gas estimate, before signing (Immutable zkEVM)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/immutable/abi":{"get":{"operationId":"contractAbi_immutable","summary":"Recover a contract's function selectors from bytecode + resolve names (Immutable zkEVM)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/immutable/code":{"get":{"operationId":"analyzeBytecode_immutable","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Immutable zkEVM)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/immutable/storage":{"get":{"operationId":"readStorage_immutable","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Immutable zkEVM)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/immutable/decode":{"get":{"operationId":"decodeCalldata_immutable","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Immutable zkEVM)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/immutable/multicall":{"get":{"operationId":"batchCalls_immutable","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Immutable zkEVM)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/immutable/balance":{"get":{"operationId":"addressBalance_immutable","summary":"Native balance, nonce, and EOA/contract state for any address (Immutable zkEVM)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/immutable/block":{"get":{"operationId":"blockInfo_immutable","summary":"Latest or specific block header (gas, base fee, tx count) (Immutable zkEVM)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/immutable/tx":{"get":{"operationId":"txInfo_immutable","summary":"Full transaction details + receipt status by hash (Immutable zkEVM)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/immutable/fees":{"get":{"operationId":"feeInfo_immutable","summary":"Current gas price + EIP-1559 fee estimate for any chain (Immutable zkEVM)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/immutable/erc165":{"get":{"operationId":"interfaceSupport_immutable","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Immutable zkEVM)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/immutable/call":{"get":{"operationId":"ethCall_immutable","summary":"Read-only eth_call to any view function on any contract (Immutable zkEVM)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/immutable/estimategas":{"get":{"operationId":"estimateGasFor_immutable","summary":"Estimate gas for a transaction before submitting it (Immutable zkEVM)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/immutable/tokenbalances":{"get":{"operationId":"tokenBalances_immutable","summary":"ERC-20 balances for one address across many tokens at once (Immutable zkEVM)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/immutable/feehistory":{"get":{"operationId":"feeHistory_immutable","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Immutable zkEVM)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/immutable/blocktxs":{"get":{"operationId":"blockTxs_immutable","summary":"List the transactions in a block (from/to/value) (Immutable zkEVM)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/immutable/nativebalances":{"get":{"operationId":"nativeBalances_immutable","summary":"Native coin balances for many addresses at once (Immutable zkEVM)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/immutable/storagebatch":{"get":{"operationId":"storageBatch_immutable","summary":"Read multiple raw storage slots of a contract at once (Immutable zkEVM)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/immutable/chaininfo":{"get":{"operationId":"chainInfo_immutable","summary":"chainId, latest block, gas price, and native symbol for a chain (Immutable zkEVM)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/immutable/receipt":{"get":{"operationId":"receiptInfo_immutable","summary":"Full transaction receipt with event logs by hash (Immutable zkEVM)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/immutable/erc20meta":{"get":{"operationId":"erc20Meta_immutable","summary":"name / symbol / decimals / totalSupply for many tokens at once (Immutable zkEVM)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/immutable/erc1271":{"get":{"operationId":"verifyErc1271_immutable","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Immutable zkEVM)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gravity/token":{"get":{"operationId":"resolveToken_gravity","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Gravity)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gravity/nft":{"get":{"operationId":"nftInfo_gravity","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Gravity)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gravity/safe":{"get":{"operationId":"safeInfo_gravity","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Gravity)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gravity/txstatus":{"get":{"operationId":"txStatus_gravity","summary":"Did my tx land? status, gas, revert detection (Gravity)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gravity/simulate":{"get":{"operationId":"simulateCall_gravity","summary":"Will this tx revert? + gas estimate, before signing (Gravity)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gravity/abi":{"get":{"operationId":"contractAbi_gravity","summary":"Recover a contract's function selectors from bytecode + resolve names (Gravity)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gravity/code":{"get":{"operationId":"analyzeBytecode_gravity","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Gravity)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gravity/storage":{"get":{"operationId":"readStorage_gravity","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Gravity)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gravity/decode":{"get":{"operationId":"decodeCalldata_gravity","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Gravity)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gravity/multicall":{"get":{"operationId":"batchCalls_gravity","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Gravity)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gravity/balance":{"get":{"operationId":"addressBalance_gravity","summary":"Native balance, nonce, and EOA/contract state for any address (Gravity)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gravity/block":{"get":{"operationId":"blockInfo_gravity","summary":"Latest or specific block header (gas, base fee, tx count) (Gravity)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gravity/tx":{"get":{"operationId":"txInfo_gravity","summary":"Full transaction details + receipt status by hash (Gravity)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gravity/fees":{"get":{"operationId":"feeInfo_gravity","summary":"Current gas price + EIP-1559 fee estimate for any chain (Gravity)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gravity/erc165":{"get":{"operationId":"interfaceSupport_gravity","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Gravity)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gravity/call":{"get":{"operationId":"ethCall_gravity","summary":"Read-only eth_call to any view function on any contract (Gravity)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gravity/estimategas":{"get":{"operationId":"estimateGasFor_gravity","summary":"Estimate gas for a transaction before submitting it (Gravity)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gravity/tokenbalances":{"get":{"operationId":"tokenBalances_gravity","summary":"ERC-20 balances for one address across many tokens at once (Gravity)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gravity/feehistory":{"get":{"operationId":"feeHistory_gravity","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Gravity)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gravity/blocktxs":{"get":{"operationId":"blockTxs_gravity","summary":"List the transactions in a block (from/to/value) (Gravity)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gravity/nativebalances":{"get":{"operationId":"nativeBalances_gravity","summary":"Native coin balances for many addresses at once (Gravity)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gravity/storagebatch":{"get":{"operationId":"storageBatch_gravity","summary":"Read multiple raw storage slots of a contract at once (Gravity)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gravity/chaininfo":{"get":{"operationId":"chainInfo_gravity","summary":"chainId, latest block, gas price, and native symbol for a chain (Gravity)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gravity/receipt":{"get":{"operationId":"receiptInfo_gravity","summary":"Full transaction receipt with event logs by hash (Gravity)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gravity/erc20meta":{"get":{"operationId":"erc20Meta_gravity","summary":"name / symbol / decimals / totalSupply for many tokens at once (Gravity)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/gravity/erc1271":{"get":{"operationId":"verifyErc1271_gravity","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Gravity)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/morph/token":{"get":{"operationId":"resolveToken_morph","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Morph)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/morph/nft":{"get":{"operationId":"nftInfo_morph","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Morph)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/morph/safe":{"get":{"operationId":"safeInfo_morph","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Morph)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/morph/txstatus":{"get":{"operationId":"txStatus_morph","summary":"Did my tx land? status, gas, revert detection (Morph)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/morph/simulate":{"get":{"operationId":"simulateCall_morph","summary":"Will this tx revert? + gas estimate, before signing (Morph)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/morph/abi":{"get":{"operationId":"contractAbi_morph","summary":"Recover a contract's function selectors from bytecode + resolve names (Morph)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/morph/code":{"get":{"operationId":"analyzeBytecode_morph","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Morph)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/morph/storage":{"get":{"operationId":"readStorage_morph","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Morph)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/morph/decode":{"get":{"operationId":"decodeCalldata_morph","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Morph)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/morph/multicall":{"get":{"operationId":"batchCalls_morph","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Morph)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/morph/balance":{"get":{"operationId":"addressBalance_morph","summary":"Native balance, nonce, and EOA/contract state for any address (Morph)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/morph/block":{"get":{"operationId":"blockInfo_morph","summary":"Latest or specific block header (gas, base fee, tx count) (Morph)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/morph/tx":{"get":{"operationId":"txInfo_morph","summary":"Full transaction details + receipt status by hash (Morph)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/morph/fees":{"get":{"operationId":"feeInfo_morph","summary":"Current gas price + EIP-1559 fee estimate for any chain (Morph)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/morph/erc165":{"get":{"operationId":"interfaceSupport_morph","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Morph)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/morph/call":{"get":{"operationId":"ethCall_morph","summary":"Read-only eth_call to any view function on any contract (Morph)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/morph/estimategas":{"get":{"operationId":"estimateGasFor_morph","summary":"Estimate gas for a transaction before submitting it (Morph)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/morph/tokenbalances":{"get":{"operationId":"tokenBalances_morph","summary":"ERC-20 balances for one address across many tokens at once (Morph)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/morph/feehistory":{"get":{"operationId":"feeHistory_morph","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Morph)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/morph/blocktxs":{"get":{"operationId":"blockTxs_morph","summary":"List the transactions in a block (from/to/value) (Morph)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/morph/nativebalances":{"get":{"operationId":"nativeBalances_morph","summary":"Native coin balances for many addresses at once (Morph)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/morph/storagebatch":{"get":{"operationId":"storageBatch_morph","summary":"Read multiple raw storage slots of a contract at once (Morph)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/morph/chaininfo":{"get":{"operationId":"chainInfo_morph","summary":"chainId, latest block, gas price, and native symbol for a chain (Morph)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/morph/receipt":{"get":{"operationId":"receiptInfo_morph","summary":"Full transaction receipt with event logs by hash (Morph)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/morph/erc20meta":{"get":{"operationId":"erc20Meta_morph","summary":"name / symbol / decimals / totalSupply for many tokens at once (Morph)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/morph/erc1271":{"get":{"operationId":"verifyErc1271_morph","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Morph)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/superseed/token":{"get":{"operationId":"resolveToken_superseed","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Superseed)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/superseed/nft":{"get":{"operationId":"nftInfo_superseed","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Superseed)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/superseed/safe":{"get":{"operationId":"safeInfo_superseed","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Superseed)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/superseed/txstatus":{"get":{"operationId":"txStatus_superseed","summary":"Did my tx land? status, gas, revert detection (Superseed)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/superseed/simulate":{"get":{"operationId":"simulateCall_superseed","summary":"Will this tx revert? + gas estimate, before signing (Superseed)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/superseed/abi":{"get":{"operationId":"contractAbi_superseed","summary":"Recover a contract's function selectors from bytecode + resolve names (Superseed)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/superseed/code":{"get":{"operationId":"analyzeBytecode_superseed","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Superseed)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/superseed/storage":{"get":{"operationId":"readStorage_superseed","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Superseed)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/superseed/decode":{"get":{"operationId":"decodeCalldata_superseed","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Superseed)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/superseed/multicall":{"get":{"operationId":"batchCalls_superseed","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Superseed)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/superseed/balance":{"get":{"operationId":"addressBalance_superseed","summary":"Native balance, nonce, and EOA/contract state for any address (Superseed)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/superseed/block":{"get":{"operationId":"blockInfo_superseed","summary":"Latest or specific block header (gas, base fee, tx count) (Superseed)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/superseed/tx":{"get":{"operationId":"txInfo_superseed","summary":"Full transaction details + receipt status by hash (Superseed)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/superseed/fees":{"get":{"operationId":"feeInfo_superseed","summary":"Current gas price + EIP-1559 fee estimate for any chain (Superseed)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/superseed/erc165":{"get":{"operationId":"interfaceSupport_superseed","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Superseed)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/superseed/call":{"get":{"operationId":"ethCall_superseed","summary":"Read-only eth_call to any view function on any contract (Superseed)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/superseed/estimategas":{"get":{"operationId":"estimateGasFor_superseed","summary":"Estimate gas for a transaction before submitting it (Superseed)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/superseed/tokenbalances":{"get":{"operationId":"tokenBalances_superseed","summary":"ERC-20 balances for one address across many tokens at once (Superseed)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/superseed/feehistory":{"get":{"operationId":"feeHistory_superseed","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Superseed)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/superseed/blocktxs":{"get":{"operationId":"blockTxs_superseed","summary":"List the transactions in a block (from/to/value) (Superseed)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/superseed/nativebalances":{"get":{"operationId":"nativeBalances_superseed","summary":"Native coin balances for many addresses at once (Superseed)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/superseed/storagebatch":{"get":{"operationId":"storageBatch_superseed","summary":"Read multiple raw storage slots of a contract at once (Superseed)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/superseed/chaininfo":{"get":{"operationId":"chainInfo_superseed","summary":"chainId, latest block, gas price, and native symbol for a chain (Superseed)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/superseed/receipt":{"get":{"operationId":"receiptInfo_superseed","summary":"Full transaction receipt with event logs by hash (Superseed)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/superseed/erc20meta":{"get":{"operationId":"erc20Meta_superseed","summary":"name / symbol / decimals / totalSupply for many tokens at once (Superseed)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/superseed/erc1271":{"get":{"operationId":"verifyErc1271_superseed","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Superseed)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cyber/token":{"get":{"operationId":"resolveToken_cyber","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Cyber)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cyber/nft":{"get":{"operationId":"nftInfo_cyber","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Cyber)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cyber/safe":{"get":{"operationId":"safeInfo_cyber","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Cyber)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cyber/txstatus":{"get":{"operationId":"txStatus_cyber","summary":"Did my tx land? status, gas, revert detection (Cyber)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cyber/simulate":{"get":{"operationId":"simulateCall_cyber","summary":"Will this tx revert? + gas estimate, before signing (Cyber)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cyber/abi":{"get":{"operationId":"contractAbi_cyber","summary":"Recover a contract's function selectors from bytecode + resolve names (Cyber)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cyber/code":{"get":{"operationId":"analyzeBytecode_cyber","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Cyber)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cyber/storage":{"get":{"operationId":"readStorage_cyber","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Cyber)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cyber/decode":{"get":{"operationId":"decodeCalldata_cyber","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Cyber)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cyber/multicall":{"get":{"operationId":"batchCalls_cyber","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Cyber)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cyber/balance":{"get":{"operationId":"addressBalance_cyber","summary":"Native balance, nonce, and EOA/contract state for any address (Cyber)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cyber/block":{"get":{"operationId":"blockInfo_cyber","summary":"Latest or specific block header (gas, base fee, tx count) (Cyber)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cyber/tx":{"get":{"operationId":"txInfo_cyber","summary":"Full transaction details + receipt status by hash (Cyber)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cyber/fees":{"get":{"operationId":"feeInfo_cyber","summary":"Current gas price + EIP-1559 fee estimate for any chain (Cyber)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cyber/erc165":{"get":{"operationId":"interfaceSupport_cyber","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Cyber)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cyber/call":{"get":{"operationId":"ethCall_cyber","summary":"Read-only eth_call to any view function on any contract (Cyber)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cyber/estimategas":{"get":{"operationId":"estimateGasFor_cyber","summary":"Estimate gas for a transaction before submitting it (Cyber)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cyber/tokenbalances":{"get":{"operationId":"tokenBalances_cyber","summary":"ERC-20 balances for one address across many tokens at once (Cyber)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cyber/feehistory":{"get":{"operationId":"feeHistory_cyber","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Cyber)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cyber/blocktxs":{"get":{"operationId":"blockTxs_cyber","summary":"List the transactions in a block (from/to/value) (Cyber)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cyber/nativebalances":{"get":{"operationId":"nativeBalances_cyber","summary":"Native coin balances for many addresses at once (Cyber)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cyber/storagebatch":{"get":{"operationId":"storageBatch_cyber","summary":"Read multiple raw storage slots of a contract at once (Cyber)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cyber/chaininfo":{"get":{"operationId":"chainInfo_cyber","summary":"chainId, latest block, gas price, and native symbol for a chain (Cyber)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cyber/receipt":{"get":{"operationId":"receiptInfo_cyber","summary":"Full transaction receipt with event logs by hash (Cyber)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cyber/erc20meta":{"get":{"operationId":"erc20Meta_cyber","summary":"name / symbol / decimals / totalSupply for many tokens at once (Cyber)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/cyber/erc1271":{"get":{"operationId":"verifyErc1271_cyber","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Cyber)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/apechain/token":{"get":{"operationId":"resolveToken_apechain","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (ApeChain)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/apechain/nft":{"get":{"operationId":"nftInfo_apechain","summary":"ERC-721/1155 detection + collection + per-token owner/URI (ApeChain)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/apechain/safe":{"get":{"operationId":"safeInfo_apechain","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (ApeChain)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/apechain/txstatus":{"get":{"operationId":"txStatus_apechain","summary":"Did my tx land? status, gas, revert detection (ApeChain)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/apechain/simulate":{"get":{"operationId":"simulateCall_apechain","summary":"Will this tx revert? + gas estimate, before signing (ApeChain)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/apechain/abi":{"get":{"operationId":"contractAbi_apechain","summary":"Recover a contract's function selectors from bytecode + resolve names (ApeChain)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/apechain/code":{"get":{"operationId":"analyzeBytecode_apechain","summary":"Proxy detection, dangerous opcodes, codehash for any contract (ApeChain)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/apechain/storage":{"get":{"operationId":"readStorage_apechain","summary":"Read any raw contract storage slot, decoded as uint/address/bool (ApeChain)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/apechain/decode":{"get":{"operationId":"decodeCalldata_apechain","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (ApeChain)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/apechain/multicall":{"get":{"operationId":"batchCalls_apechain","summary":"Run up to 20 arbitrary read-only calls in one eth_call (ApeChain)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/apechain/balance":{"get":{"operationId":"addressBalance_apechain","summary":"Native balance, nonce, and EOA/contract state for any address (ApeChain)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/apechain/block":{"get":{"operationId":"blockInfo_apechain","summary":"Latest or specific block header (gas, base fee, tx count) (ApeChain)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/apechain/tx":{"get":{"operationId":"txInfo_apechain","summary":"Full transaction details + receipt status by hash (ApeChain)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/apechain/fees":{"get":{"operationId":"feeInfo_apechain","summary":"Current gas price + EIP-1559 fee estimate for any chain (ApeChain)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/apechain/erc165":{"get":{"operationId":"interfaceSupport_apechain","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (ApeChain)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/apechain/call":{"get":{"operationId":"ethCall_apechain","summary":"Read-only eth_call to any view function on any contract (ApeChain)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/apechain/estimategas":{"get":{"operationId":"estimateGasFor_apechain","summary":"Estimate gas for a transaction before submitting it (ApeChain)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/apechain/tokenbalances":{"get":{"operationId":"tokenBalances_apechain","summary":"ERC-20 balances for one address across many tokens at once (ApeChain)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/apechain/feehistory":{"get":{"operationId":"feeHistory_apechain","summary":"Base-fee trend + priority-fee percentiles over recent blocks (ApeChain)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/apechain/blocktxs":{"get":{"operationId":"blockTxs_apechain","summary":"List the transactions in a block (from/to/value) (ApeChain)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/apechain/nativebalances":{"get":{"operationId":"nativeBalances_apechain","summary":"Native coin balances for many addresses at once (ApeChain)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/apechain/storagebatch":{"get":{"operationId":"storageBatch_apechain","summary":"Read multiple raw storage slots of a contract at once (ApeChain)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/apechain/chaininfo":{"get":{"operationId":"chainInfo_apechain","summary":"chainId, latest block, gas price, and native symbol for a chain (ApeChain)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/apechain/receipt":{"get":{"operationId":"receiptInfo_apechain","summary":"Full transaction receipt with event logs by hash (ApeChain)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/apechain/erc20meta":{"get":{"operationId":"erc20Meta_apechain","summary":"name / symbol / decimals / totalSupply for many tokens at once (ApeChain)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/apechain/erc1271":{"get":{"operationId":"verifyErc1271_apechain","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (ApeChain)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xai/token":{"get":{"operationId":"resolveToken_xai","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Xai)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xai/nft":{"get":{"operationId":"nftInfo_xai","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Xai)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xai/safe":{"get":{"operationId":"safeInfo_xai","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Xai)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xai/txstatus":{"get":{"operationId":"txStatus_xai","summary":"Did my tx land? status, gas, revert detection (Xai)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xai/simulate":{"get":{"operationId":"simulateCall_xai","summary":"Will this tx revert? + gas estimate, before signing (Xai)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xai/abi":{"get":{"operationId":"contractAbi_xai","summary":"Recover a contract's function selectors from bytecode + resolve names (Xai)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xai/code":{"get":{"operationId":"analyzeBytecode_xai","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Xai)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xai/storage":{"get":{"operationId":"readStorage_xai","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Xai)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xai/decode":{"get":{"operationId":"decodeCalldata_xai","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Xai)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xai/multicall":{"get":{"operationId":"batchCalls_xai","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Xai)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xai/balance":{"get":{"operationId":"addressBalance_xai","summary":"Native balance, nonce, and EOA/contract state for any address (Xai)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xai/block":{"get":{"operationId":"blockInfo_xai","summary":"Latest or specific block header (gas, base fee, tx count) (Xai)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xai/tx":{"get":{"operationId":"txInfo_xai","summary":"Full transaction details + receipt status by hash (Xai)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xai/fees":{"get":{"operationId":"feeInfo_xai","summary":"Current gas price + EIP-1559 fee estimate for any chain (Xai)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xai/erc165":{"get":{"operationId":"interfaceSupport_xai","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Xai)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xai/call":{"get":{"operationId":"ethCall_xai","summary":"Read-only eth_call to any view function on any contract (Xai)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xai/estimategas":{"get":{"operationId":"estimateGasFor_xai","summary":"Estimate gas for a transaction before submitting it (Xai)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xai/tokenbalances":{"get":{"operationId":"tokenBalances_xai","summary":"ERC-20 balances for one address across many tokens at once (Xai)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xai/feehistory":{"get":{"operationId":"feeHistory_xai","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Xai)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xai/blocktxs":{"get":{"operationId":"blockTxs_xai","summary":"List the transactions in a block (from/to/value) (Xai)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xai/nativebalances":{"get":{"operationId":"nativeBalances_xai","summary":"Native coin balances for many addresses at once (Xai)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xai/storagebatch":{"get":{"operationId":"storageBatch_xai","summary":"Read multiple raw storage slots of a contract at once (Xai)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xai/chaininfo":{"get":{"operationId":"chainInfo_xai","summary":"chainId, latest block, gas price, and native symbol for a chain (Xai)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xai/receipt":{"get":{"operationId":"receiptInfo_xai","summary":"Full transaction receipt with event logs by hash (Xai)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xai/erc20meta":{"get":{"operationId":"erc20Meta_xai","summary":"name / symbol / decimals / totalSupply for many tokens at once (Xai)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xai/erc1271":{"get":{"operationId":"verifyErc1271_xai","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Xai)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/b3/token":{"get":{"operationId":"resolveToken_b3","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (B3)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/b3/nft":{"get":{"operationId":"nftInfo_b3","summary":"ERC-721/1155 detection + collection + per-token owner/URI (B3)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/b3/safe":{"get":{"operationId":"safeInfo_b3","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (B3)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/b3/txstatus":{"get":{"operationId":"txStatus_b3","summary":"Did my tx land? status, gas, revert detection (B3)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/b3/simulate":{"get":{"operationId":"simulateCall_b3","summary":"Will this tx revert? + gas estimate, before signing (B3)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/b3/abi":{"get":{"operationId":"contractAbi_b3","summary":"Recover a contract's function selectors from bytecode + resolve names (B3)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/b3/code":{"get":{"operationId":"analyzeBytecode_b3","summary":"Proxy detection, dangerous opcodes, codehash for any contract (B3)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/b3/storage":{"get":{"operationId":"readStorage_b3","summary":"Read any raw contract storage slot, decoded as uint/address/bool (B3)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/b3/decode":{"get":{"operationId":"decodeCalldata_b3","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (B3)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/b3/multicall":{"get":{"operationId":"batchCalls_b3","summary":"Run up to 20 arbitrary read-only calls in one eth_call (B3)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/b3/balance":{"get":{"operationId":"addressBalance_b3","summary":"Native balance, nonce, and EOA/contract state for any address (B3)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/b3/block":{"get":{"operationId":"blockInfo_b3","summary":"Latest or specific block header (gas, base fee, tx count) (B3)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/b3/tx":{"get":{"operationId":"txInfo_b3","summary":"Full transaction details + receipt status by hash (B3)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/b3/fees":{"get":{"operationId":"feeInfo_b3","summary":"Current gas price + EIP-1559 fee estimate for any chain (B3)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/b3/erc165":{"get":{"operationId":"interfaceSupport_b3","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (B3)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/b3/call":{"get":{"operationId":"ethCall_b3","summary":"Read-only eth_call to any view function on any contract (B3)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/b3/estimategas":{"get":{"operationId":"estimateGasFor_b3","summary":"Estimate gas for a transaction before submitting it (B3)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/b3/tokenbalances":{"get":{"operationId":"tokenBalances_b3","summary":"ERC-20 balances for one address across many tokens at once (B3)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/b3/feehistory":{"get":{"operationId":"feeHistory_b3","summary":"Base-fee trend + priority-fee percentiles over recent blocks (B3)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/b3/blocktxs":{"get":{"operationId":"blockTxs_b3","summary":"List the transactions in a block (from/to/value) (B3)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/b3/nativebalances":{"get":{"operationId":"nativeBalances_b3","summary":"Native coin balances for many addresses at once (B3)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/b3/storagebatch":{"get":{"operationId":"storageBatch_b3","summary":"Read multiple raw storage slots of a contract at once (B3)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/b3/chaininfo":{"get":{"operationId":"chainInfo_b3","summary":"chainId, latest block, gas price, and native symbol for a chain (B3)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/b3/receipt":{"get":{"operationId":"receiptInfo_b3","summary":"Full transaction receipt with event logs by hash (B3)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/b3/erc20meta":{"get":{"operationId":"erc20Meta_b3","summary":"name / symbol / decimals / totalSupply for many tokens at once (B3)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/b3/erc1271":{"get":{"operationId":"verifyErc1271_b3","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (B3)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/shape/token":{"get":{"operationId":"resolveToken_shape","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Shape)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/shape/nft":{"get":{"operationId":"nftInfo_shape","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Shape)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/shape/safe":{"get":{"operationId":"safeInfo_shape","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Shape)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/shape/txstatus":{"get":{"operationId":"txStatus_shape","summary":"Did my tx land? status, gas, revert detection (Shape)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/shape/simulate":{"get":{"operationId":"simulateCall_shape","summary":"Will this tx revert? + gas estimate, before signing (Shape)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/shape/abi":{"get":{"operationId":"contractAbi_shape","summary":"Recover a contract's function selectors from bytecode + resolve names (Shape)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/shape/code":{"get":{"operationId":"analyzeBytecode_shape","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Shape)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/shape/storage":{"get":{"operationId":"readStorage_shape","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Shape)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/shape/decode":{"get":{"operationId":"decodeCalldata_shape","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Shape)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/shape/multicall":{"get":{"operationId":"batchCalls_shape","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Shape)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/shape/balance":{"get":{"operationId":"addressBalance_shape","summary":"Native balance, nonce, and EOA/contract state for any address (Shape)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/shape/block":{"get":{"operationId":"blockInfo_shape","summary":"Latest or specific block header (gas, base fee, tx count) (Shape)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/shape/tx":{"get":{"operationId":"txInfo_shape","summary":"Full transaction details + receipt status by hash (Shape)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/shape/fees":{"get":{"operationId":"feeInfo_shape","summary":"Current gas price + EIP-1559 fee estimate for any chain (Shape)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/shape/erc165":{"get":{"operationId":"interfaceSupport_shape","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Shape)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/shape/call":{"get":{"operationId":"ethCall_shape","summary":"Read-only eth_call to any view function on any contract (Shape)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/shape/estimategas":{"get":{"operationId":"estimateGasFor_shape","summary":"Estimate gas for a transaction before submitting it (Shape)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/shape/tokenbalances":{"get":{"operationId":"tokenBalances_shape","summary":"ERC-20 balances for one address across many tokens at once (Shape)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/shape/feehistory":{"get":{"operationId":"feeHistory_shape","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Shape)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/shape/blocktxs":{"get":{"operationId":"blockTxs_shape","summary":"List the transactions in a block (from/to/value) (Shape)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/shape/nativebalances":{"get":{"operationId":"nativeBalances_shape","summary":"Native coin balances for many addresses at once (Shape)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/shape/storagebatch":{"get":{"operationId":"storageBatch_shape","summary":"Read multiple raw storage slots of a contract at once (Shape)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/shape/chaininfo":{"get":{"operationId":"chainInfo_shape","summary":"chainId, latest block, gas price, and native symbol for a chain (Shape)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/shape/receipt":{"get":{"operationId":"receiptInfo_shape","summary":"Full transaction receipt with event logs by hash (Shape)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/shape/erc20meta":{"get":{"operationId":"erc20Meta_shape","summary":"name / symbol / decimals / totalSupply for many tokens at once (Shape)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/shape/erc1271":{"get":{"operationId":"verifyErc1271_shape","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Shape)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/hemi/token":{"get":{"operationId":"resolveToken_hemi","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Hemi)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/hemi/nft":{"get":{"operationId":"nftInfo_hemi","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Hemi)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/hemi/safe":{"get":{"operationId":"safeInfo_hemi","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Hemi)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/hemi/txstatus":{"get":{"operationId":"txStatus_hemi","summary":"Did my tx land? status, gas, revert detection (Hemi)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/hemi/simulate":{"get":{"operationId":"simulateCall_hemi","summary":"Will this tx revert? + gas estimate, before signing (Hemi)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/hemi/abi":{"get":{"operationId":"contractAbi_hemi","summary":"Recover a contract's function selectors from bytecode + resolve names (Hemi)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/hemi/code":{"get":{"operationId":"analyzeBytecode_hemi","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Hemi)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/hemi/storage":{"get":{"operationId":"readStorage_hemi","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Hemi)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/hemi/decode":{"get":{"operationId":"decodeCalldata_hemi","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Hemi)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/hemi/multicall":{"get":{"operationId":"batchCalls_hemi","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Hemi)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/hemi/balance":{"get":{"operationId":"addressBalance_hemi","summary":"Native balance, nonce, and EOA/contract state for any address (Hemi)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/hemi/block":{"get":{"operationId":"blockInfo_hemi","summary":"Latest or specific block header (gas, base fee, tx count) (Hemi)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/hemi/tx":{"get":{"operationId":"txInfo_hemi","summary":"Full transaction details + receipt status by hash (Hemi)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/hemi/fees":{"get":{"operationId":"feeInfo_hemi","summary":"Current gas price + EIP-1559 fee estimate for any chain (Hemi)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/hemi/erc165":{"get":{"operationId":"interfaceSupport_hemi","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Hemi)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/hemi/call":{"get":{"operationId":"ethCall_hemi","summary":"Read-only eth_call to any view function on any contract (Hemi)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/hemi/estimategas":{"get":{"operationId":"estimateGasFor_hemi","summary":"Estimate gas for a transaction before submitting it (Hemi)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/hemi/tokenbalances":{"get":{"operationId":"tokenBalances_hemi","summary":"ERC-20 balances for one address across many tokens at once (Hemi)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/hemi/feehistory":{"get":{"operationId":"feeHistory_hemi","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Hemi)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/hemi/blocktxs":{"get":{"operationId":"blockTxs_hemi","summary":"List the transactions in a block (from/to/value) (Hemi)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/hemi/nativebalances":{"get":{"operationId":"nativeBalances_hemi","summary":"Native coin balances for many addresses at once (Hemi)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/hemi/storagebatch":{"get":{"operationId":"storageBatch_hemi","summary":"Read multiple raw storage slots of a contract at once (Hemi)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/hemi/chaininfo":{"get":{"operationId":"chainInfo_hemi","summary":"chainId, latest block, gas price, and native symbol for a chain (Hemi)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/hemi/receipt":{"get":{"operationId":"receiptInfo_hemi","summary":"Full transaction receipt with event logs by hash (Hemi)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/hemi/erc20meta":{"get":{"operationId":"erc20Meta_hemi","summary":"name / symbol / decimals / totalSupply for many tokens at once (Hemi)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/hemi/erc1271":{"get":{"operationId":"verifyErc1271_hemi","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Hemi)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/abstract/token":{"get":{"operationId":"resolveToken_abstract","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Abstract)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/abstract/nft":{"get":{"operationId":"nftInfo_abstract","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Abstract)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/abstract/safe":{"get":{"operationId":"safeInfo_abstract","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Abstract)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/abstract/txstatus":{"get":{"operationId":"txStatus_abstract","summary":"Did my tx land? status, gas, revert detection (Abstract)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/abstract/simulate":{"get":{"operationId":"simulateCall_abstract","summary":"Will this tx revert? + gas estimate, before signing (Abstract)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/abstract/abi":{"get":{"operationId":"contractAbi_abstract","summary":"Recover a contract's function selectors from bytecode + resolve names (Abstract)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/abstract/code":{"get":{"operationId":"analyzeBytecode_abstract","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Abstract)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/abstract/storage":{"get":{"operationId":"readStorage_abstract","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Abstract)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/abstract/decode":{"get":{"operationId":"decodeCalldata_abstract","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Abstract)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/abstract/multicall":{"get":{"operationId":"batchCalls_abstract","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Abstract)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/abstract/balance":{"get":{"operationId":"addressBalance_abstract","summary":"Native balance, nonce, and EOA/contract state for any address (Abstract)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/abstract/block":{"get":{"operationId":"blockInfo_abstract","summary":"Latest or specific block header (gas, base fee, tx count) (Abstract)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/abstract/tx":{"get":{"operationId":"txInfo_abstract","summary":"Full transaction details + receipt status by hash (Abstract)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/abstract/fees":{"get":{"operationId":"feeInfo_abstract","summary":"Current gas price + EIP-1559 fee estimate for any chain (Abstract)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/abstract/erc165":{"get":{"operationId":"interfaceSupport_abstract","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Abstract)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/abstract/call":{"get":{"operationId":"ethCall_abstract","summary":"Read-only eth_call to any view function on any contract (Abstract)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/abstract/estimategas":{"get":{"operationId":"estimateGasFor_abstract","summary":"Estimate gas for a transaction before submitting it (Abstract)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/abstract/tokenbalances":{"get":{"operationId":"tokenBalances_abstract","summary":"ERC-20 balances for one address across many tokens at once (Abstract)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/abstract/feehistory":{"get":{"operationId":"feeHistory_abstract","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Abstract)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/abstract/blocktxs":{"get":{"operationId":"blockTxs_abstract","summary":"List the transactions in a block (from/to/value) (Abstract)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/abstract/nativebalances":{"get":{"operationId":"nativeBalances_abstract","summary":"Native coin balances for many addresses at once (Abstract)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/abstract/storagebatch":{"get":{"operationId":"storageBatch_abstract","summary":"Read multiple raw storage slots of a contract at once (Abstract)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/abstract/chaininfo":{"get":{"operationId":"chainInfo_abstract","summary":"chainId, latest block, gas price, and native symbol for a chain (Abstract)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/abstract/receipt":{"get":{"operationId":"receiptInfo_abstract","summary":"Full transaction receipt with event logs by hash (Abstract)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/abstract/erc20meta":{"get":{"operationId":"erc20Meta_abstract","summary":"name / symbol / decimals / totalSupply for many tokens at once (Abstract)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/abstract/erc1271":{"get":{"operationId":"verifyErc1271_abstract","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Abstract)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fantom/token":{"get":{"operationId":"resolveToken_fantom","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Fantom)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fantom/nft":{"get":{"operationId":"nftInfo_fantom","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Fantom)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fantom/safe":{"get":{"operationId":"safeInfo_fantom","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Fantom)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fantom/txstatus":{"get":{"operationId":"txStatus_fantom","summary":"Did my tx land? status, gas, revert detection (Fantom)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fantom/simulate":{"get":{"operationId":"simulateCall_fantom","summary":"Will this tx revert? + gas estimate, before signing (Fantom)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fantom/abi":{"get":{"operationId":"contractAbi_fantom","summary":"Recover a contract's function selectors from bytecode + resolve names (Fantom)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fantom/code":{"get":{"operationId":"analyzeBytecode_fantom","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Fantom)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fantom/storage":{"get":{"operationId":"readStorage_fantom","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Fantom)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fantom/decode":{"get":{"operationId":"decodeCalldata_fantom","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Fantom)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fantom/multicall":{"get":{"operationId":"batchCalls_fantom","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Fantom)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fantom/balance":{"get":{"operationId":"addressBalance_fantom","summary":"Native balance, nonce, and EOA/contract state for any address (Fantom)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fantom/block":{"get":{"operationId":"blockInfo_fantom","summary":"Latest or specific block header (gas, base fee, tx count) (Fantom)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fantom/tx":{"get":{"operationId":"txInfo_fantom","summary":"Full transaction details + receipt status by hash (Fantom)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fantom/fees":{"get":{"operationId":"feeInfo_fantom","summary":"Current gas price + EIP-1559 fee estimate for any chain (Fantom)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fantom/erc165":{"get":{"operationId":"interfaceSupport_fantom","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Fantom)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fantom/call":{"get":{"operationId":"ethCall_fantom","summary":"Read-only eth_call to any view function on any contract (Fantom)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fantom/estimategas":{"get":{"operationId":"estimateGasFor_fantom","summary":"Estimate gas for a transaction before submitting it (Fantom)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fantom/tokenbalances":{"get":{"operationId":"tokenBalances_fantom","summary":"ERC-20 balances for one address across many tokens at once (Fantom)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fantom/feehistory":{"get":{"operationId":"feeHistory_fantom","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Fantom)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fantom/blocktxs":{"get":{"operationId":"blockTxs_fantom","summary":"List the transactions in a block (from/to/value) (Fantom)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fantom/nativebalances":{"get":{"operationId":"nativeBalances_fantom","summary":"Native coin balances for many addresses at once (Fantom)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fantom/storagebatch":{"get":{"operationId":"storageBatch_fantom","summary":"Read multiple raw storage slots of a contract at once (Fantom)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fantom/chaininfo":{"get":{"operationId":"chainInfo_fantom","summary":"chainId, latest block, gas price, and native symbol for a chain (Fantom)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fantom/receipt":{"get":{"operationId":"receiptInfo_fantom","summary":"Full transaction receipt with event logs by hash (Fantom)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fantom/erc20meta":{"get":{"operationId":"erc20Meta_fantom","summary":"name / symbol / decimals / totalSupply for many tokens at once (Fantom)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fantom/erc1271":{"get":{"operationId":"verifyErc1271_fantom","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Fantom)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fuse/token":{"get":{"operationId":"resolveToken_fuse","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Fuse)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fuse/nft":{"get":{"operationId":"nftInfo_fuse","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Fuse)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fuse/safe":{"get":{"operationId":"safeInfo_fuse","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Fuse)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fuse/txstatus":{"get":{"operationId":"txStatus_fuse","summary":"Did my tx land? status, gas, revert detection (Fuse)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fuse/simulate":{"get":{"operationId":"simulateCall_fuse","summary":"Will this tx revert? + gas estimate, before signing (Fuse)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fuse/abi":{"get":{"operationId":"contractAbi_fuse","summary":"Recover a contract's function selectors from bytecode + resolve names (Fuse)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fuse/code":{"get":{"operationId":"analyzeBytecode_fuse","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Fuse)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fuse/storage":{"get":{"operationId":"readStorage_fuse","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Fuse)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fuse/decode":{"get":{"operationId":"decodeCalldata_fuse","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Fuse)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fuse/multicall":{"get":{"operationId":"batchCalls_fuse","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Fuse)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fuse/balance":{"get":{"operationId":"addressBalance_fuse","summary":"Native balance, nonce, and EOA/contract state for any address (Fuse)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fuse/block":{"get":{"operationId":"blockInfo_fuse","summary":"Latest or specific block header (gas, base fee, tx count) (Fuse)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fuse/tx":{"get":{"operationId":"txInfo_fuse","summary":"Full transaction details + receipt status by hash (Fuse)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fuse/fees":{"get":{"operationId":"feeInfo_fuse","summary":"Current gas price + EIP-1559 fee estimate for any chain (Fuse)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fuse/erc165":{"get":{"operationId":"interfaceSupport_fuse","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Fuse)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fuse/call":{"get":{"operationId":"ethCall_fuse","summary":"Read-only eth_call to any view function on any contract (Fuse)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fuse/estimategas":{"get":{"operationId":"estimateGasFor_fuse","summary":"Estimate gas for a transaction before submitting it (Fuse)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fuse/tokenbalances":{"get":{"operationId":"tokenBalances_fuse","summary":"ERC-20 balances for one address across many tokens at once (Fuse)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fuse/feehistory":{"get":{"operationId":"feeHistory_fuse","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Fuse)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fuse/blocktxs":{"get":{"operationId":"blockTxs_fuse","summary":"List the transactions in a block (from/to/value) (Fuse)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fuse/nativebalances":{"get":{"operationId":"nativeBalances_fuse","summary":"Native coin balances for many addresses at once (Fuse)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fuse/storagebatch":{"get":{"operationId":"storageBatch_fuse","summary":"Read multiple raw storage slots of a contract at once (Fuse)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fuse/chaininfo":{"get":{"operationId":"chainInfo_fuse","summary":"chainId, latest block, gas price, and native symbol for a chain (Fuse)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fuse/receipt":{"get":{"operationId":"receiptInfo_fuse","summary":"Full transaction receipt with event logs by hash (Fuse)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fuse/erc20meta":{"get":{"operationId":"erc20Meta_fuse","summary":"name / symbol / decimals / totalSupply for many tokens at once (Fuse)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/fuse/erc1271":{"get":{"operationId":"verifyErc1271_fuse","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Fuse)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/dogechain/token":{"get":{"operationId":"resolveToken_dogechain","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Dogechain)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/dogechain/nft":{"get":{"operationId":"nftInfo_dogechain","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Dogechain)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/dogechain/safe":{"get":{"operationId":"safeInfo_dogechain","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Dogechain)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/dogechain/txstatus":{"get":{"operationId":"txStatus_dogechain","summary":"Did my tx land? status, gas, revert detection (Dogechain)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/dogechain/simulate":{"get":{"operationId":"simulateCall_dogechain","summary":"Will this tx revert? + gas estimate, before signing (Dogechain)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/dogechain/abi":{"get":{"operationId":"contractAbi_dogechain","summary":"Recover a contract's function selectors from bytecode + resolve names (Dogechain)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/dogechain/code":{"get":{"operationId":"analyzeBytecode_dogechain","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Dogechain)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/dogechain/storage":{"get":{"operationId":"readStorage_dogechain","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Dogechain)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/dogechain/decode":{"get":{"operationId":"decodeCalldata_dogechain","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Dogechain)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/dogechain/multicall":{"get":{"operationId":"batchCalls_dogechain","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Dogechain)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/dogechain/balance":{"get":{"operationId":"addressBalance_dogechain","summary":"Native balance, nonce, and EOA/contract state for any address (Dogechain)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/dogechain/block":{"get":{"operationId":"blockInfo_dogechain","summary":"Latest or specific block header (gas, base fee, tx count) (Dogechain)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/dogechain/tx":{"get":{"operationId":"txInfo_dogechain","summary":"Full transaction details + receipt status by hash (Dogechain)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/dogechain/fees":{"get":{"operationId":"feeInfo_dogechain","summary":"Current gas price + EIP-1559 fee estimate for any chain (Dogechain)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/dogechain/erc165":{"get":{"operationId":"interfaceSupport_dogechain","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Dogechain)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/dogechain/call":{"get":{"operationId":"ethCall_dogechain","summary":"Read-only eth_call to any view function on any contract (Dogechain)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/dogechain/estimategas":{"get":{"operationId":"estimateGasFor_dogechain","summary":"Estimate gas for a transaction before submitting it (Dogechain)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/dogechain/tokenbalances":{"get":{"operationId":"tokenBalances_dogechain","summary":"ERC-20 balances for one address across many tokens at once (Dogechain)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/dogechain/feehistory":{"get":{"operationId":"feeHistory_dogechain","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Dogechain)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/dogechain/blocktxs":{"get":{"operationId":"blockTxs_dogechain","summary":"List the transactions in a block (from/to/value) (Dogechain)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/dogechain/nativebalances":{"get":{"operationId":"nativeBalances_dogechain","summary":"Native coin balances for many addresses at once (Dogechain)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/dogechain/storagebatch":{"get":{"operationId":"storageBatch_dogechain","summary":"Read multiple raw storage slots of a contract at once (Dogechain)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/dogechain/chaininfo":{"get":{"operationId":"chainInfo_dogechain","summary":"chainId, latest block, gas price, and native symbol for a chain (Dogechain)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/dogechain/receipt":{"get":{"operationId":"receiptInfo_dogechain","summary":"Full transaction receipt with event logs by hash (Dogechain)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/dogechain/erc20meta":{"get":{"operationId":"erc20Meta_dogechain","summary":"name / symbol / decimals / totalSupply for many tokens at once (Dogechain)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/dogechain/erc1271":{"get":{"operationId":"verifyErc1271_dogechain","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Dogechain)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/pulsechain/token":{"get":{"operationId":"resolveToken_pulsechain","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (PulseChain)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/pulsechain/nft":{"get":{"operationId":"nftInfo_pulsechain","summary":"ERC-721/1155 detection + collection + per-token owner/URI (PulseChain)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/pulsechain/safe":{"get":{"operationId":"safeInfo_pulsechain","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (PulseChain)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/pulsechain/txstatus":{"get":{"operationId":"txStatus_pulsechain","summary":"Did my tx land? status, gas, revert detection (PulseChain)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/pulsechain/simulate":{"get":{"operationId":"simulateCall_pulsechain","summary":"Will this tx revert? + gas estimate, before signing (PulseChain)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/pulsechain/abi":{"get":{"operationId":"contractAbi_pulsechain","summary":"Recover a contract's function selectors from bytecode + resolve names (PulseChain)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/pulsechain/code":{"get":{"operationId":"analyzeBytecode_pulsechain","summary":"Proxy detection, dangerous opcodes, codehash for any contract (PulseChain)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/pulsechain/storage":{"get":{"operationId":"readStorage_pulsechain","summary":"Read any raw contract storage slot, decoded as uint/address/bool (PulseChain)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/pulsechain/decode":{"get":{"operationId":"decodeCalldata_pulsechain","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (PulseChain)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/pulsechain/multicall":{"get":{"operationId":"batchCalls_pulsechain","summary":"Run up to 20 arbitrary read-only calls in one eth_call (PulseChain)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/pulsechain/balance":{"get":{"operationId":"addressBalance_pulsechain","summary":"Native balance, nonce, and EOA/contract state for any address (PulseChain)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/pulsechain/block":{"get":{"operationId":"blockInfo_pulsechain","summary":"Latest or specific block header (gas, base fee, tx count) (PulseChain)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/pulsechain/tx":{"get":{"operationId":"txInfo_pulsechain","summary":"Full transaction details + receipt status by hash (PulseChain)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/pulsechain/fees":{"get":{"operationId":"feeInfo_pulsechain","summary":"Current gas price + EIP-1559 fee estimate for any chain (PulseChain)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/pulsechain/erc165":{"get":{"operationId":"interfaceSupport_pulsechain","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (PulseChain)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/pulsechain/call":{"get":{"operationId":"ethCall_pulsechain","summary":"Read-only eth_call to any view function on any contract (PulseChain)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/pulsechain/estimategas":{"get":{"operationId":"estimateGasFor_pulsechain","summary":"Estimate gas for a transaction before submitting it (PulseChain)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/pulsechain/tokenbalances":{"get":{"operationId":"tokenBalances_pulsechain","summary":"ERC-20 balances for one address across many tokens at once (PulseChain)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/pulsechain/feehistory":{"get":{"operationId":"feeHistory_pulsechain","summary":"Base-fee trend + priority-fee percentiles over recent blocks (PulseChain)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/pulsechain/blocktxs":{"get":{"operationId":"blockTxs_pulsechain","summary":"List the transactions in a block (from/to/value) (PulseChain)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/pulsechain/nativebalances":{"get":{"operationId":"nativeBalances_pulsechain","summary":"Native coin balances for many addresses at once (PulseChain)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/pulsechain/storagebatch":{"get":{"operationId":"storageBatch_pulsechain","summary":"Read multiple raw storage slots of a contract at once (PulseChain)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/pulsechain/chaininfo":{"get":{"operationId":"chainInfo_pulsechain","summary":"chainId, latest block, gas price, and native symbol for a chain (PulseChain)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/pulsechain/receipt":{"get":{"operationId":"receiptInfo_pulsechain","summary":"Full transaction receipt with event logs by hash (PulseChain)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/pulsechain/erc20meta":{"get":{"operationId":"erc20Meta_pulsechain","summary":"name / symbol / decimals / totalSupply for many tokens at once (PulseChain)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/pulsechain/erc1271":{"get":{"operationId":"verifyErc1271_pulsechain","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (PulseChain)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/oasissapphire/token":{"get":{"operationId":"resolveToken_oasissapphire","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Oasis Sapphire)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/oasissapphire/nft":{"get":{"operationId":"nftInfo_oasissapphire","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Oasis Sapphire)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/oasissapphire/safe":{"get":{"operationId":"safeInfo_oasissapphire","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Oasis Sapphire)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/oasissapphire/txstatus":{"get":{"operationId":"txStatus_oasissapphire","summary":"Did my tx land? status, gas, revert detection (Oasis Sapphire)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/oasissapphire/simulate":{"get":{"operationId":"simulateCall_oasissapphire","summary":"Will this tx revert? + gas estimate, before signing (Oasis Sapphire)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/oasissapphire/abi":{"get":{"operationId":"contractAbi_oasissapphire","summary":"Recover a contract's function selectors from bytecode + resolve names (Oasis Sapphire)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/oasissapphire/code":{"get":{"operationId":"analyzeBytecode_oasissapphire","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Oasis Sapphire)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/oasissapphire/storage":{"get":{"operationId":"readStorage_oasissapphire","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Oasis Sapphire)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/oasissapphire/decode":{"get":{"operationId":"decodeCalldata_oasissapphire","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Oasis Sapphire)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/oasissapphire/multicall":{"get":{"operationId":"batchCalls_oasissapphire","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Oasis Sapphire)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/oasissapphire/balance":{"get":{"operationId":"addressBalance_oasissapphire","summary":"Native balance, nonce, and EOA/contract state for any address (Oasis Sapphire)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/oasissapphire/block":{"get":{"operationId":"blockInfo_oasissapphire","summary":"Latest or specific block header (gas, base fee, tx count) (Oasis Sapphire)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/oasissapphire/tx":{"get":{"operationId":"txInfo_oasissapphire","summary":"Full transaction details + receipt status by hash (Oasis Sapphire)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/oasissapphire/fees":{"get":{"operationId":"feeInfo_oasissapphire","summary":"Current gas price + EIP-1559 fee estimate for any chain (Oasis Sapphire)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/oasissapphire/erc165":{"get":{"operationId":"interfaceSupport_oasissapphire","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Oasis Sapphire)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/oasissapphire/call":{"get":{"operationId":"ethCall_oasissapphire","summary":"Read-only eth_call to any view function on any contract (Oasis Sapphire)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/oasissapphire/estimategas":{"get":{"operationId":"estimateGasFor_oasissapphire","summary":"Estimate gas for a transaction before submitting it (Oasis Sapphire)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/oasissapphire/tokenbalances":{"get":{"operationId":"tokenBalances_oasissapphire","summary":"ERC-20 balances for one address across many tokens at once (Oasis Sapphire)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/oasissapphire/feehistory":{"get":{"operationId":"feeHistory_oasissapphire","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Oasis Sapphire)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/oasissapphire/blocktxs":{"get":{"operationId":"blockTxs_oasissapphire","summary":"List the transactions in a block (from/to/value) (Oasis Sapphire)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/oasissapphire/nativebalances":{"get":{"operationId":"nativeBalances_oasissapphire","summary":"Native coin balances for many addresses at once (Oasis Sapphire)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/oasissapphire/storagebatch":{"get":{"operationId":"storageBatch_oasissapphire","summary":"Read multiple raw storage slots of a contract at once (Oasis Sapphire)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/oasissapphire/chaininfo":{"get":{"operationId":"chainInfo_oasissapphire","summary":"chainId, latest block, gas price, and native symbol for a chain (Oasis Sapphire)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/oasissapphire/receipt":{"get":{"operationId":"receiptInfo_oasissapphire","summary":"Full transaction receipt with event logs by hash (Oasis Sapphire)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/oasissapphire/erc20meta":{"get":{"operationId":"erc20Meta_oasissapphire","summary":"name / symbol / decimals / totalSupply for many tokens at once (Oasis Sapphire)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/oasissapphire/erc1271":{"get":{"operationId":"verifyErc1271_oasissapphire","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Oasis Sapphire)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/conflux/token":{"get":{"operationId":"resolveToken_conflux","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Conflux eSpace)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/conflux/nft":{"get":{"operationId":"nftInfo_conflux","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Conflux eSpace)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/conflux/safe":{"get":{"operationId":"safeInfo_conflux","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Conflux eSpace)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/conflux/txstatus":{"get":{"operationId":"txStatus_conflux","summary":"Did my tx land? status, gas, revert detection (Conflux eSpace)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/conflux/simulate":{"get":{"operationId":"simulateCall_conflux","summary":"Will this tx revert? + gas estimate, before signing (Conflux eSpace)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/conflux/abi":{"get":{"operationId":"contractAbi_conflux","summary":"Recover a contract's function selectors from bytecode + resolve names (Conflux eSpace)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/conflux/code":{"get":{"operationId":"analyzeBytecode_conflux","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Conflux eSpace)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/conflux/storage":{"get":{"operationId":"readStorage_conflux","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Conflux eSpace)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/conflux/decode":{"get":{"operationId":"decodeCalldata_conflux","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Conflux eSpace)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/conflux/multicall":{"get":{"operationId":"batchCalls_conflux","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Conflux eSpace)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/conflux/balance":{"get":{"operationId":"addressBalance_conflux","summary":"Native balance, nonce, and EOA/contract state for any address (Conflux eSpace)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/conflux/block":{"get":{"operationId":"blockInfo_conflux","summary":"Latest or specific block header (gas, base fee, tx count) (Conflux eSpace)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/conflux/tx":{"get":{"operationId":"txInfo_conflux","summary":"Full transaction details + receipt status by hash (Conflux eSpace)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/conflux/fees":{"get":{"operationId":"feeInfo_conflux","summary":"Current gas price + EIP-1559 fee estimate for any chain (Conflux eSpace)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/conflux/erc165":{"get":{"operationId":"interfaceSupport_conflux","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Conflux eSpace)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/conflux/call":{"get":{"operationId":"ethCall_conflux","summary":"Read-only eth_call to any view function on any contract (Conflux eSpace)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/conflux/estimategas":{"get":{"operationId":"estimateGasFor_conflux","summary":"Estimate gas for a transaction before submitting it (Conflux eSpace)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/conflux/tokenbalances":{"get":{"operationId":"tokenBalances_conflux","summary":"ERC-20 balances for one address across many tokens at once (Conflux eSpace)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/conflux/feehistory":{"get":{"operationId":"feeHistory_conflux","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Conflux eSpace)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/conflux/blocktxs":{"get":{"operationId":"blockTxs_conflux","summary":"List the transactions in a block (from/to/value) (Conflux eSpace)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/conflux/nativebalances":{"get":{"operationId":"nativeBalances_conflux","summary":"Native coin balances for many addresses at once (Conflux eSpace)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/conflux/storagebatch":{"get":{"operationId":"storageBatch_conflux","summary":"Read multiple raw storage slots of a contract at once (Conflux eSpace)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/conflux/chaininfo":{"get":{"operationId":"chainInfo_conflux","summary":"chainId, latest block, gas price, and native symbol for a chain (Conflux eSpace)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/conflux/receipt":{"get":{"operationId":"receiptInfo_conflux","summary":"Full transaction receipt with event logs by hash (Conflux eSpace)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/conflux/erc20meta":{"get":{"operationId":"erc20Meta_conflux","summary":"name / symbol / decimals / totalSupply for many tokens at once (Conflux eSpace)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/conflux/erc1271":{"get":{"operationId":"verifyErc1271_conflux","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Conflux eSpace)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bitlayer/token":{"get":{"operationId":"resolveToken_bitlayer","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Bitlayer)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bitlayer/nft":{"get":{"operationId":"nftInfo_bitlayer","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Bitlayer)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bitlayer/safe":{"get":{"operationId":"safeInfo_bitlayer","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Bitlayer)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bitlayer/txstatus":{"get":{"operationId":"txStatus_bitlayer","summary":"Did my tx land? status, gas, revert detection (Bitlayer)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bitlayer/simulate":{"get":{"operationId":"simulateCall_bitlayer","summary":"Will this tx revert? + gas estimate, before signing (Bitlayer)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bitlayer/abi":{"get":{"operationId":"contractAbi_bitlayer","summary":"Recover a contract's function selectors from bytecode + resolve names (Bitlayer)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bitlayer/code":{"get":{"operationId":"analyzeBytecode_bitlayer","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Bitlayer)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bitlayer/storage":{"get":{"operationId":"readStorage_bitlayer","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Bitlayer)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bitlayer/decode":{"get":{"operationId":"decodeCalldata_bitlayer","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Bitlayer)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bitlayer/multicall":{"get":{"operationId":"batchCalls_bitlayer","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Bitlayer)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bitlayer/balance":{"get":{"operationId":"addressBalance_bitlayer","summary":"Native balance, nonce, and EOA/contract state for any address (Bitlayer)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bitlayer/block":{"get":{"operationId":"blockInfo_bitlayer","summary":"Latest or specific block header (gas, base fee, tx count) (Bitlayer)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bitlayer/tx":{"get":{"operationId":"txInfo_bitlayer","summary":"Full transaction details + receipt status by hash (Bitlayer)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bitlayer/fees":{"get":{"operationId":"feeInfo_bitlayer","summary":"Current gas price + EIP-1559 fee estimate for any chain (Bitlayer)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bitlayer/erc165":{"get":{"operationId":"interfaceSupport_bitlayer","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Bitlayer)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bitlayer/call":{"get":{"operationId":"ethCall_bitlayer","summary":"Read-only eth_call to any view function on any contract (Bitlayer)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bitlayer/estimategas":{"get":{"operationId":"estimateGasFor_bitlayer","summary":"Estimate gas for a transaction before submitting it (Bitlayer)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bitlayer/tokenbalances":{"get":{"operationId":"tokenBalances_bitlayer","summary":"ERC-20 balances for one address across many tokens at once (Bitlayer)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bitlayer/feehistory":{"get":{"operationId":"feeHistory_bitlayer","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Bitlayer)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bitlayer/blocktxs":{"get":{"operationId":"blockTxs_bitlayer","summary":"List the transactions in a block (from/to/value) (Bitlayer)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bitlayer/nativebalances":{"get":{"operationId":"nativeBalances_bitlayer","summary":"Native coin balances for many addresses at once (Bitlayer)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bitlayer/storagebatch":{"get":{"operationId":"storageBatch_bitlayer","summary":"Read multiple raw storage slots of a contract at once (Bitlayer)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bitlayer/chaininfo":{"get":{"operationId":"chainInfo_bitlayer","summary":"chainId, latest block, gas price, and native symbol for a chain (Bitlayer)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bitlayer/receipt":{"get":{"operationId":"receiptInfo_bitlayer","summary":"Full transaction receipt with event logs by hash (Bitlayer)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bitlayer/erc20meta":{"get":{"operationId":"erc20Meta_bitlayer","summary":"name / symbol / decimals / totalSupply for many tokens at once (Bitlayer)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bitlayer/erc1271":{"get":{"operationId":"verifyErc1271_bitlayer","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Bitlayer)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wemix/token":{"get":{"operationId":"resolveToken_wemix","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (WEMIX)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wemix/nft":{"get":{"operationId":"nftInfo_wemix","summary":"ERC-721/1155 detection + collection + per-token owner/URI (WEMIX)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wemix/safe":{"get":{"operationId":"safeInfo_wemix","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (WEMIX)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wemix/txstatus":{"get":{"operationId":"txStatus_wemix","summary":"Did my tx land? status, gas, revert detection (WEMIX)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wemix/simulate":{"get":{"operationId":"simulateCall_wemix","summary":"Will this tx revert? + gas estimate, before signing (WEMIX)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wemix/abi":{"get":{"operationId":"contractAbi_wemix","summary":"Recover a contract's function selectors from bytecode + resolve names (WEMIX)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wemix/code":{"get":{"operationId":"analyzeBytecode_wemix","summary":"Proxy detection, dangerous opcodes, codehash for any contract (WEMIX)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wemix/storage":{"get":{"operationId":"readStorage_wemix","summary":"Read any raw contract storage slot, decoded as uint/address/bool (WEMIX)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wemix/decode":{"get":{"operationId":"decodeCalldata_wemix","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (WEMIX)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wemix/multicall":{"get":{"operationId":"batchCalls_wemix","summary":"Run up to 20 arbitrary read-only calls in one eth_call (WEMIX)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wemix/balance":{"get":{"operationId":"addressBalance_wemix","summary":"Native balance, nonce, and EOA/contract state for any address (WEMIX)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wemix/block":{"get":{"operationId":"blockInfo_wemix","summary":"Latest or specific block header (gas, base fee, tx count) (WEMIX)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wemix/tx":{"get":{"operationId":"txInfo_wemix","summary":"Full transaction details + receipt status by hash (WEMIX)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wemix/fees":{"get":{"operationId":"feeInfo_wemix","summary":"Current gas price + EIP-1559 fee estimate for any chain (WEMIX)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wemix/erc165":{"get":{"operationId":"interfaceSupport_wemix","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (WEMIX)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wemix/call":{"get":{"operationId":"ethCall_wemix","summary":"Read-only eth_call to any view function on any contract (WEMIX)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wemix/estimategas":{"get":{"operationId":"estimateGasFor_wemix","summary":"Estimate gas for a transaction before submitting it (WEMIX)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wemix/tokenbalances":{"get":{"operationId":"tokenBalances_wemix","summary":"ERC-20 balances for one address across many tokens at once (WEMIX)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wemix/feehistory":{"get":{"operationId":"feeHistory_wemix","summary":"Base-fee trend + priority-fee percentiles over recent blocks (WEMIX)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wemix/blocktxs":{"get":{"operationId":"blockTxs_wemix","summary":"List the transactions in a block (from/to/value) (WEMIX)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wemix/nativebalances":{"get":{"operationId":"nativeBalances_wemix","summary":"Native coin balances for many addresses at once (WEMIX)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wemix/storagebatch":{"get":{"operationId":"storageBatch_wemix","summary":"Read multiple raw storage slots of a contract at once (WEMIX)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wemix/chaininfo":{"get":{"operationId":"chainInfo_wemix","summary":"chainId, latest block, gas price, and native symbol for a chain (WEMIX)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wemix/receipt":{"get":{"operationId":"receiptInfo_wemix","summary":"Full transaction receipt with event logs by hash (WEMIX)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wemix/erc20meta":{"get":{"operationId":"erc20Meta_wemix","summary":"name / symbol / decimals / totalSupply for many tokens at once (WEMIX)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wemix/erc1271":{"get":{"operationId":"verifyErc1271_wemix","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (WEMIX)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/etherlink/token":{"get":{"operationId":"resolveToken_etherlink","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Etherlink)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/etherlink/nft":{"get":{"operationId":"nftInfo_etherlink","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Etherlink)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/etherlink/safe":{"get":{"operationId":"safeInfo_etherlink","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Etherlink)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/etherlink/txstatus":{"get":{"operationId":"txStatus_etherlink","summary":"Did my tx land? status, gas, revert detection (Etherlink)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/etherlink/simulate":{"get":{"operationId":"simulateCall_etherlink","summary":"Will this tx revert? + gas estimate, before signing (Etherlink)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/etherlink/abi":{"get":{"operationId":"contractAbi_etherlink","summary":"Recover a contract's function selectors from bytecode + resolve names (Etherlink)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/etherlink/code":{"get":{"operationId":"analyzeBytecode_etherlink","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Etherlink)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/etherlink/storage":{"get":{"operationId":"readStorage_etherlink","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Etherlink)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/etherlink/decode":{"get":{"operationId":"decodeCalldata_etherlink","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Etherlink)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/etherlink/multicall":{"get":{"operationId":"batchCalls_etherlink","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Etherlink)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/etherlink/balance":{"get":{"operationId":"addressBalance_etherlink","summary":"Native balance, nonce, and EOA/contract state for any address (Etherlink)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/etherlink/block":{"get":{"operationId":"blockInfo_etherlink","summary":"Latest or specific block header (gas, base fee, tx count) (Etherlink)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/etherlink/tx":{"get":{"operationId":"txInfo_etherlink","summary":"Full transaction details + receipt status by hash (Etherlink)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/etherlink/fees":{"get":{"operationId":"feeInfo_etherlink","summary":"Current gas price + EIP-1559 fee estimate for any chain (Etherlink)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/etherlink/erc165":{"get":{"operationId":"interfaceSupport_etherlink","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Etherlink)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/etherlink/call":{"get":{"operationId":"ethCall_etherlink","summary":"Read-only eth_call to any view function on any contract (Etherlink)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/etherlink/estimategas":{"get":{"operationId":"estimateGasFor_etherlink","summary":"Estimate gas for a transaction before submitting it (Etherlink)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/etherlink/tokenbalances":{"get":{"operationId":"tokenBalances_etherlink","summary":"ERC-20 balances for one address across many tokens at once (Etherlink)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/etherlink/feehistory":{"get":{"operationId":"feeHistory_etherlink","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Etherlink)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/etherlink/blocktxs":{"get":{"operationId":"blockTxs_etherlink","summary":"List the transactions in a block (from/to/value) (Etherlink)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/etherlink/nativebalances":{"get":{"operationId":"nativeBalances_etherlink","summary":"Native coin balances for many addresses at once (Etherlink)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/etherlink/storagebatch":{"get":{"operationId":"storageBatch_etherlink","summary":"Read multiple raw storage slots of a contract at once (Etherlink)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/etherlink/chaininfo":{"get":{"operationId":"chainInfo_etherlink","summary":"chainId, latest block, gas price, and native symbol for a chain (Etherlink)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/etherlink/receipt":{"get":{"operationId":"receiptInfo_etherlink","summary":"Full transaction receipt with event logs by hash (Etherlink)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/etherlink/erc20meta":{"get":{"operationId":"erc20Meta_etherlink","summary":"name / symbol / decimals / totalSupply for many tokens at once (Etherlink)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/etherlink/erc1271":{"get":{"operationId":"verifyErc1271_etherlink","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Etherlink)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/story/token":{"get":{"operationId":"resolveToken_story","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Story)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/story/nft":{"get":{"operationId":"nftInfo_story","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Story)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/story/safe":{"get":{"operationId":"safeInfo_story","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Story)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/story/txstatus":{"get":{"operationId":"txStatus_story","summary":"Did my tx land? status, gas, revert detection (Story)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/story/simulate":{"get":{"operationId":"simulateCall_story","summary":"Will this tx revert? + gas estimate, before signing (Story)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/story/abi":{"get":{"operationId":"contractAbi_story","summary":"Recover a contract's function selectors from bytecode + resolve names (Story)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/story/code":{"get":{"operationId":"analyzeBytecode_story","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Story)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/story/storage":{"get":{"operationId":"readStorage_story","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Story)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/story/decode":{"get":{"operationId":"decodeCalldata_story","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Story)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/story/multicall":{"get":{"operationId":"batchCalls_story","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Story)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/story/balance":{"get":{"operationId":"addressBalance_story","summary":"Native balance, nonce, and EOA/contract state for any address (Story)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/story/block":{"get":{"operationId":"blockInfo_story","summary":"Latest or specific block header (gas, base fee, tx count) (Story)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/story/tx":{"get":{"operationId":"txInfo_story","summary":"Full transaction details + receipt status by hash (Story)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/story/fees":{"get":{"operationId":"feeInfo_story","summary":"Current gas price + EIP-1559 fee estimate for any chain (Story)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/story/erc165":{"get":{"operationId":"interfaceSupport_story","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Story)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/story/call":{"get":{"operationId":"ethCall_story","summary":"Read-only eth_call to any view function on any contract (Story)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/story/estimategas":{"get":{"operationId":"estimateGasFor_story","summary":"Estimate gas for a transaction before submitting it (Story)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/story/tokenbalances":{"get":{"operationId":"tokenBalances_story","summary":"ERC-20 balances for one address across many tokens at once (Story)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/story/feehistory":{"get":{"operationId":"feeHistory_story","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Story)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/story/blocktxs":{"get":{"operationId":"blockTxs_story","summary":"List the transactions in a block (from/to/value) (Story)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/story/nativebalances":{"get":{"operationId":"nativeBalances_story","summary":"Native coin balances for many addresses at once (Story)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/story/storagebatch":{"get":{"operationId":"storageBatch_story","summary":"Read multiple raw storage slots of a contract at once (Story)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/story/chaininfo":{"get":{"operationId":"chainInfo_story","summary":"chainId, latest block, gas price, and native symbol for a chain (Story)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/story/receipt":{"get":{"operationId":"receiptInfo_story","summary":"Full transaction receipt with event logs by hash (Story)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/story/erc20meta":{"get":{"operationId":"erc20Meta_story","summary":"name / symbol / decimals / totalSupply for many tokens at once (Story)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/story/erc1271":{"get":{"operationId":"verifyErc1271_story","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Story)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ronin/token":{"get":{"operationId":"resolveToken_ronin","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Ronin)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ronin/nft":{"get":{"operationId":"nftInfo_ronin","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Ronin)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ronin/safe":{"get":{"operationId":"safeInfo_ronin","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Ronin)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ronin/txstatus":{"get":{"operationId":"txStatus_ronin","summary":"Did my tx land? status, gas, revert detection (Ronin)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ronin/simulate":{"get":{"operationId":"simulateCall_ronin","summary":"Will this tx revert? + gas estimate, before signing (Ronin)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ronin/abi":{"get":{"operationId":"contractAbi_ronin","summary":"Recover a contract's function selectors from bytecode + resolve names (Ronin)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ronin/code":{"get":{"operationId":"analyzeBytecode_ronin","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Ronin)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ronin/storage":{"get":{"operationId":"readStorage_ronin","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Ronin)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ronin/decode":{"get":{"operationId":"decodeCalldata_ronin","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Ronin)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ronin/multicall":{"get":{"operationId":"batchCalls_ronin","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Ronin)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ronin/balance":{"get":{"operationId":"addressBalance_ronin","summary":"Native balance, nonce, and EOA/contract state for any address (Ronin)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ronin/block":{"get":{"operationId":"blockInfo_ronin","summary":"Latest or specific block header (gas, base fee, tx count) (Ronin)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ronin/tx":{"get":{"operationId":"txInfo_ronin","summary":"Full transaction details + receipt status by hash (Ronin)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ronin/fees":{"get":{"operationId":"feeInfo_ronin","summary":"Current gas price + EIP-1559 fee estimate for any chain (Ronin)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ronin/erc165":{"get":{"operationId":"interfaceSupport_ronin","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Ronin)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ronin/call":{"get":{"operationId":"ethCall_ronin","summary":"Read-only eth_call to any view function on any contract (Ronin)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ronin/estimategas":{"get":{"operationId":"estimateGasFor_ronin","summary":"Estimate gas for a transaction before submitting it (Ronin)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ronin/tokenbalances":{"get":{"operationId":"tokenBalances_ronin","summary":"ERC-20 balances for one address across many tokens at once (Ronin)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ronin/feehistory":{"get":{"operationId":"feeHistory_ronin","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Ronin)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ronin/blocktxs":{"get":{"operationId":"blockTxs_ronin","summary":"List the transactions in a block (from/to/value) (Ronin)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ronin/nativebalances":{"get":{"operationId":"nativeBalances_ronin","summary":"Native coin balances for many addresses at once (Ronin)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ronin/storagebatch":{"get":{"operationId":"storageBatch_ronin","summary":"Read multiple raw storage slots of a contract at once (Ronin)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ronin/chaininfo":{"get":{"operationId":"chainInfo_ronin","summary":"chainId, latest block, gas price, and native symbol for a chain (Ronin)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ronin/receipt":{"get":{"operationId":"receiptInfo_ronin","summary":"Full transaction receipt with event logs by hash (Ronin)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ronin/erc20meta":{"get":{"operationId":"erc20Meta_ronin","summary":"name / symbol / decimals / totalSupply for many tokens at once (Ronin)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/ronin/erc1271":{"get":{"operationId":"verifyErc1271_ronin","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Ronin)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/iotex/token":{"get":{"operationId":"resolveToken_iotex","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (IoTeX)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/iotex/nft":{"get":{"operationId":"nftInfo_iotex","summary":"ERC-721/1155 detection + collection + per-token owner/URI (IoTeX)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/iotex/safe":{"get":{"operationId":"safeInfo_iotex","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (IoTeX)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/iotex/txstatus":{"get":{"operationId":"txStatus_iotex","summary":"Did my tx land? status, gas, revert detection (IoTeX)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/iotex/simulate":{"get":{"operationId":"simulateCall_iotex","summary":"Will this tx revert? + gas estimate, before signing (IoTeX)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/iotex/abi":{"get":{"operationId":"contractAbi_iotex","summary":"Recover a contract's function selectors from bytecode + resolve names (IoTeX)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/iotex/code":{"get":{"operationId":"analyzeBytecode_iotex","summary":"Proxy detection, dangerous opcodes, codehash for any contract (IoTeX)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/iotex/storage":{"get":{"operationId":"readStorage_iotex","summary":"Read any raw contract storage slot, decoded as uint/address/bool (IoTeX)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/iotex/decode":{"get":{"operationId":"decodeCalldata_iotex","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (IoTeX)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/iotex/multicall":{"get":{"operationId":"batchCalls_iotex","summary":"Run up to 20 arbitrary read-only calls in one eth_call (IoTeX)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/iotex/balance":{"get":{"operationId":"addressBalance_iotex","summary":"Native balance, nonce, and EOA/contract state for any address (IoTeX)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/iotex/block":{"get":{"operationId":"blockInfo_iotex","summary":"Latest or specific block header (gas, base fee, tx count) (IoTeX)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/iotex/tx":{"get":{"operationId":"txInfo_iotex","summary":"Full transaction details + receipt status by hash (IoTeX)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/iotex/fees":{"get":{"operationId":"feeInfo_iotex","summary":"Current gas price + EIP-1559 fee estimate for any chain (IoTeX)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/iotex/erc165":{"get":{"operationId":"interfaceSupport_iotex","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (IoTeX)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/iotex/call":{"get":{"operationId":"ethCall_iotex","summary":"Read-only eth_call to any view function on any contract (IoTeX)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/iotex/estimategas":{"get":{"operationId":"estimateGasFor_iotex","summary":"Estimate gas for a transaction before submitting it (IoTeX)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/iotex/tokenbalances":{"get":{"operationId":"tokenBalances_iotex","summary":"ERC-20 balances for one address across many tokens at once (IoTeX)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/iotex/feehistory":{"get":{"operationId":"feeHistory_iotex","summary":"Base-fee trend + priority-fee percentiles over recent blocks (IoTeX)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/iotex/blocktxs":{"get":{"operationId":"blockTxs_iotex","summary":"List the transactions in a block (from/to/value) (IoTeX)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/iotex/nativebalances":{"get":{"operationId":"nativeBalances_iotex","summary":"Native coin balances for many addresses at once (IoTeX)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/iotex/storagebatch":{"get":{"operationId":"storageBatch_iotex","summary":"Read multiple raw storage slots of a contract at once (IoTeX)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/iotex/chaininfo":{"get":{"operationId":"chainInfo_iotex","summary":"chainId, latest block, gas price, and native symbol for a chain (IoTeX)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/iotex/receipt":{"get":{"operationId":"receiptInfo_iotex","summary":"Full transaction receipt with event logs by hash (IoTeX)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/iotex/erc20meta":{"get":{"operationId":"erc20Meta_iotex","summary":"name / symbol / decimals / totalSupply for many tokens at once (IoTeX)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/iotex/erc1271":{"get":{"operationId":"verifyErc1271_iotex","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (IoTeX)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/derive/token":{"get":{"operationId":"resolveToken_derive","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Derive)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/derive/nft":{"get":{"operationId":"nftInfo_derive","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Derive)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/derive/safe":{"get":{"operationId":"safeInfo_derive","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Derive)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/derive/txstatus":{"get":{"operationId":"txStatus_derive","summary":"Did my tx land? status, gas, revert detection (Derive)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/derive/simulate":{"get":{"operationId":"simulateCall_derive","summary":"Will this tx revert? + gas estimate, before signing (Derive)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/derive/abi":{"get":{"operationId":"contractAbi_derive","summary":"Recover a contract's function selectors from bytecode + resolve names (Derive)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/derive/code":{"get":{"operationId":"analyzeBytecode_derive","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Derive)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/derive/storage":{"get":{"operationId":"readStorage_derive","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Derive)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/derive/decode":{"get":{"operationId":"decodeCalldata_derive","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Derive)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/derive/multicall":{"get":{"operationId":"batchCalls_derive","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Derive)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/derive/balance":{"get":{"operationId":"addressBalance_derive","summary":"Native balance, nonce, and EOA/contract state for any address (Derive)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/derive/block":{"get":{"operationId":"blockInfo_derive","summary":"Latest or specific block header (gas, base fee, tx count) (Derive)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/derive/tx":{"get":{"operationId":"txInfo_derive","summary":"Full transaction details + receipt status by hash (Derive)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/derive/fees":{"get":{"operationId":"feeInfo_derive","summary":"Current gas price + EIP-1559 fee estimate for any chain (Derive)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/derive/erc165":{"get":{"operationId":"interfaceSupport_derive","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Derive)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/derive/call":{"get":{"operationId":"ethCall_derive","summary":"Read-only eth_call to any view function on any contract (Derive)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/derive/estimategas":{"get":{"operationId":"estimateGasFor_derive","summary":"Estimate gas for a transaction before submitting it (Derive)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/derive/tokenbalances":{"get":{"operationId":"tokenBalances_derive","summary":"ERC-20 balances for one address across many tokens at once (Derive)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/derive/feehistory":{"get":{"operationId":"feeHistory_derive","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Derive)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/derive/blocktxs":{"get":{"operationId":"blockTxs_derive","summary":"List the transactions in a block (from/to/value) (Derive)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/derive/nativebalances":{"get":{"operationId":"nativeBalances_derive","summary":"Native coin balances for many addresses at once (Derive)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/derive/storagebatch":{"get":{"operationId":"storageBatch_derive","summary":"Read multiple raw storage slots of a contract at once (Derive)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/derive/chaininfo":{"get":{"operationId":"chainInfo_derive","summary":"chainId, latest block, gas price, and native symbol for a chain (Derive)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/derive/receipt":{"get":{"operationId":"receiptInfo_derive","summary":"Full transaction receipt with event logs by hash (Derive)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/derive/erc20meta":{"get":{"operationId":"erc20Meta_derive","summary":"name / symbol / decimals / totalSupply for many tokens at once (Derive)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/derive/erc1271":{"get":{"operationId":"verifyErc1271_derive","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Derive)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metall2/token":{"get":{"operationId":"resolveToken_metall2","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Metal L2)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metall2/nft":{"get":{"operationId":"nftInfo_metall2","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Metal L2)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metall2/safe":{"get":{"operationId":"safeInfo_metall2","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Metal L2)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metall2/txstatus":{"get":{"operationId":"txStatus_metall2","summary":"Did my tx land? status, gas, revert detection (Metal L2)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metall2/simulate":{"get":{"operationId":"simulateCall_metall2","summary":"Will this tx revert? + gas estimate, before signing (Metal L2)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metall2/abi":{"get":{"operationId":"contractAbi_metall2","summary":"Recover a contract's function selectors from bytecode + resolve names (Metal L2)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metall2/code":{"get":{"operationId":"analyzeBytecode_metall2","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Metal L2)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metall2/storage":{"get":{"operationId":"readStorage_metall2","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Metal L2)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metall2/decode":{"get":{"operationId":"decodeCalldata_metall2","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Metal L2)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metall2/multicall":{"get":{"operationId":"batchCalls_metall2","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Metal L2)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metall2/balance":{"get":{"operationId":"addressBalance_metall2","summary":"Native balance, nonce, and EOA/contract state for any address (Metal L2)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metall2/block":{"get":{"operationId":"blockInfo_metall2","summary":"Latest or specific block header (gas, base fee, tx count) (Metal L2)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metall2/tx":{"get":{"operationId":"txInfo_metall2","summary":"Full transaction details + receipt status by hash (Metal L2)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metall2/fees":{"get":{"operationId":"feeInfo_metall2","summary":"Current gas price + EIP-1559 fee estimate for any chain (Metal L2)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metall2/erc165":{"get":{"operationId":"interfaceSupport_metall2","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Metal L2)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metall2/call":{"get":{"operationId":"ethCall_metall2","summary":"Read-only eth_call to any view function on any contract (Metal L2)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metall2/estimategas":{"get":{"operationId":"estimateGasFor_metall2","summary":"Estimate gas for a transaction before submitting it (Metal L2)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metall2/tokenbalances":{"get":{"operationId":"tokenBalances_metall2","summary":"ERC-20 balances for one address across many tokens at once (Metal L2)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metall2/feehistory":{"get":{"operationId":"feeHistory_metall2","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Metal L2)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metall2/blocktxs":{"get":{"operationId":"blockTxs_metall2","summary":"List the transactions in a block (from/to/value) (Metal L2)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metall2/nativebalances":{"get":{"operationId":"nativeBalances_metall2","summary":"Native coin balances for many addresses at once (Metal L2)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metall2/storagebatch":{"get":{"operationId":"storageBatch_metall2","summary":"Read multiple raw storage slots of a contract at once (Metal L2)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metall2/chaininfo":{"get":{"operationId":"chainInfo_metall2","summary":"chainId, latest block, gas price, and native symbol for a chain (Metal L2)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metall2/receipt":{"get":{"operationId":"receiptInfo_metall2","summary":"Full transaction receipt with event logs by hash (Metal L2)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metall2/erc20meta":{"get":{"operationId":"erc20Meta_metall2","summary":"name / symbol / decimals / totalSupply for many tokens at once (Metal L2)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/metall2/erc1271":{"get":{"operationId":"verifyErc1271_metall2","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Metal L2)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/nibiru/token":{"get":{"operationId":"resolveToken_nibiru","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Nibiru)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/nibiru/nft":{"get":{"operationId":"nftInfo_nibiru","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Nibiru)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/nibiru/safe":{"get":{"operationId":"safeInfo_nibiru","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Nibiru)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/nibiru/txstatus":{"get":{"operationId":"txStatus_nibiru","summary":"Did my tx land? status, gas, revert detection (Nibiru)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/nibiru/simulate":{"get":{"operationId":"simulateCall_nibiru","summary":"Will this tx revert? + gas estimate, before signing (Nibiru)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/nibiru/abi":{"get":{"operationId":"contractAbi_nibiru","summary":"Recover a contract's function selectors from bytecode + resolve names (Nibiru)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/nibiru/code":{"get":{"operationId":"analyzeBytecode_nibiru","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Nibiru)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/nibiru/storage":{"get":{"operationId":"readStorage_nibiru","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Nibiru)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/nibiru/decode":{"get":{"operationId":"decodeCalldata_nibiru","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Nibiru)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/nibiru/multicall":{"get":{"operationId":"batchCalls_nibiru","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Nibiru)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/nibiru/balance":{"get":{"operationId":"addressBalance_nibiru","summary":"Native balance, nonce, and EOA/contract state for any address (Nibiru)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/nibiru/block":{"get":{"operationId":"blockInfo_nibiru","summary":"Latest or specific block header (gas, base fee, tx count) (Nibiru)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/nibiru/tx":{"get":{"operationId":"txInfo_nibiru","summary":"Full transaction details + receipt status by hash (Nibiru)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/nibiru/fees":{"get":{"operationId":"feeInfo_nibiru","summary":"Current gas price + EIP-1559 fee estimate for any chain (Nibiru)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/nibiru/erc165":{"get":{"operationId":"interfaceSupport_nibiru","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Nibiru)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/nibiru/call":{"get":{"operationId":"ethCall_nibiru","summary":"Read-only eth_call to any view function on any contract (Nibiru)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/nibiru/estimategas":{"get":{"operationId":"estimateGasFor_nibiru","summary":"Estimate gas for a transaction before submitting it (Nibiru)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/nibiru/tokenbalances":{"get":{"operationId":"tokenBalances_nibiru","summary":"ERC-20 balances for one address across many tokens at once (Nibiru)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/nibiru/feehistory":{"get":{"operationId":"feeHistory_nibiru","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Nibiru)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/nibiru/blocktxs":{"get":{"operationId":"blockTxs_nibiru","summary":"List the transactions in a block (from/to/value) (Nibiru)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/nibiru/nativebalances":{"get":{"operationId":"nativeBalances_nibiru","summary":"Native coin balances for many addresses at once (Nibiru)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/nibiru/storagebatch":{"get":{"operationId":"storageBatch_nibiru","summary":"Read multiple raw storage slots of a contract at once (Nibiru)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/nibiru/chaininfo":{"get":{"operationId":"chainInfo_nibiru","summary":"chainId, latest block, gas price, and native symbol for a chain (Nibiru)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/nibiru/receipt":{"get":{"operationId":"receiptInfo_nibiru","summary":"Full transaction receipt with event logs by hash (Nibiru)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/nibiru/erc20meta":{"get":{"operationId":"erc20Meta_nibiru","summary":"name / symbol / decimals / totalSupply for many tokens at once (Nibiru)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/nibiru/erc1271":{"get":{"operationId":"verifyErc1271_nibiru","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Nibiru)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/katana/token":{"get":{"operationId":"resolveToken_katana","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Katana)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/katana/nft":{"get":{"operationId":"nftInfo_katana","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Katana)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/katana/safe":{"get":{"operationId":"safeInfo_katana","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Katana)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/katana/txstatus":{"get":{"operationId":"txStatus_katana","summary":"Did my tx land? status, gas, revert detection (Katana)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/katana/simulate":{"get":{"operationId":"simulateCall_katana","summary":"Will this tx revert? + gas estimate, before signing (Katana)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/katana/abi":{"get":{"operationId":"contractAbi_katana","summary":"Recover a contract's function selectors from bytecode + resolve names (Katana)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/katana/code":{"get":{"operationId":"analyzeBytecode_katana","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Katana)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/katana/storage":{"get":{"operationId":"readStorage_katana","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Katana)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/katana/decode":{"get":{"operationId":"decodeCalldata_katana","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Katana)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/katana/multicall":{"get":{"operationId":"batchCalls_katana","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Katana)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/katana/balance":{"get":{"operationId":"addressBalance_katana","summary":"Native balance, nonce, and EOA/contract state for any address (Katana)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/katana/block":{"get":{"operationId":"blockInfo_katana","summary":"Latest or specific block header (gas, base fee, tx count) (Katana)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/katana/tx":{"get":{"operationId":"txInfo_katana","summary":"Full transaction details + receipt status by hash (Katana)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/katana/fees":{"get":{"operationId":"feeInfo_katana","summary":"Current gas price + EIP-1559 fee estimate for any chain (Katana)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/katana/erc165":{"get":{"operationId":"interfaceSupport_katana","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Katana)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/katana/call":{"get":{"operationId":"ethCall_katana","summary":"Read-only eth_call to any view function on any contract (Katana)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/katana/estimategas":{"get":{"operationId":"estimateGasFor_katana","summary":"Estimate gas for a transaction before submitting it (Katana)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/katana/tokenbalances":{"get":{"operationId":"tokenBalances_katana","summary":"ERC-20 balances for one address across many tokens at once (Katana)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/katana/feehistory":{"get":{"operationId":"feeHistory_katana","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Katana)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/katana/blocktxs":{"get":{"operationId":"blockTxs_katana","summary":"List the transactions in a block (from/to/value) (Katana)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/katana/nativebalances":{"get":{"operationId":"nativeBalances_katana","summary":"Native coin balances for many addresses at once (Katana)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/katana/storagebatch":{"get":{"operationId":"storageBatch_katana","summary":"Read multiple raw storage slots of a contract at once (Katana)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/katana/chaininfo":{"get":{"operationId":"chainInfo_katana","summary":"chainId, latest block, gas price, and native symbol for a chain (Katana)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/katana/receipt":{"get":{"operationId":"receiptInfo_katana","summary":"Full transaction receipt with event logs by hash (Katana)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/katana/erc20meta":{"get":{"operationId":"erc20Meta_katana","summary":"name / symbol / decimals / totalSupply for many tokens at once (Katana)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/katana/erc1271":{"get":{"operationId":"verifyErc1271_katana","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Katana)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/plume/token":{"get":{"operationId":"resolveToken_plume","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Plume)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/plume/nft":{"get":{"operationId":"nftInfo_plume","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Plume)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/plume/safe":{"get":{"operationId":"safeInfo_plume","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Plume)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/plume/txstatus":{"get":{"operationId":"txStatus_plume","summary":"Did my tx land? status, gas, revert detection (Plume)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/plume/simulate":{"get":{"operationId":"simulateCall_plume","summary":"Will this tx revert? + gas estimate, before signing (Plume)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/plume/abi":{"get":{"operationId":"contractAbi_plume","summary":"Recover a contract's function selectors from bytecode + resolve names (Plume)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/plume/code":{"get":{"operationId":"analyzeBytecode_plume","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Plume)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/plume/storage":{"get":{"operationId":"readStorage_plume","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Plume)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/plume/decode":{"get":{"operationId":"decodeCalldata_plume","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Plume)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/plume/multicall":{"get":{"operationId":"batchCalls_plume","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Plume)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/plume/balance":{"get":{"operationId":"addressBalance_plume","summary":"Native balance, nonce, and EOA/contract state for any address (Plume)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/plume/block":{"get":{"operationId":"blockInfo_plume","summary":"Latest or specific block header (gas, base fee, tx count) (Plume)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/plume/tx":{"get":{"operationId":"txInfo_plume","summary":"Full transaction details + receipt status by hash (Plume)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/plume/fees":{"get":{"operationId":"feeInfo_plume","summary":"Current gas price + EIP-1559 fee estimate for any chain (Plume)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/plume/erc165":{"get":{"operationId":"interfaceSupport_plume","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Plume)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/plume/call":{"get":{"operationId":"ethCall_plume","summary":"Read-only eth_call to any view function on any contract (Plume)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/plume/estimategas":{"get":{"operationId":"estimateGasFor_plume","summary":"Estimate gas for a transaction before submitting it (Plume)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/plume/tokenbalances":{"get":{"operationId":"tokenBalances_plume","summary":"ERC-20 balances for one address across many tokens at once (Plume)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/plume/feehistory":{"get":{"operationId":"feeHistory_plume","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Plume)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/plume/blocktxs":{"get":{"operationId":"blockTxs_plume","summary":"List the transactions in a block (from/to/value) (Plume)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/plume/nativebalances":{"get":{"operationId":"nativeBalances_plume","summary":"Native coin balances for many addresses at once (Plume)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/plume/storagebatch":{"get":{"operationId":"storageBatch_plume","summary":"Read multiple raw storage slots of a contract at once (Plume)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/plume/chaininfo":{"get":{"operationId":"chainInfo_plume","summary":"chainId, latest block, gas price, and native symbol for a chain (Plume)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/plume/receipt":{"get":{"operationId":"receiptInfo_plume","summary":"Full transaction receipt with event logs by hash (Plume)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/plume/erc20meta":{"get":{"operationId":"erc20Meta_plume","summary":"name / symbol / decimals / totalSupply for many tokens at once (Plume)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/plume/erc1271":{"get":{"operationId":"verifyErc1271_plume","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Plume)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bsquared/token":{"get":{"operationId":"resolveToken_bsquared","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (BSquared)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bsquared/nft":{"get":{"operationId":"nftInfo_bsquared","summary":"ERC-721/1155 detection + collection + per-token owner/URI (BSquared)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bsquared/safe":{"get":{"operationId":"safeInfo_bsquared","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (BSquared)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bsquared/txstatus":{"get":{"operationId":"txStatus_bsquared","summary":"Did my tx land? status, gas, revert detection (BSquared)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bsquared/simulate":{"get":{"operationId":"simulateCall_bsquared","summary":"Will this tx revert? + gas estimate, before signing (BSquared)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bsquared/abi":{"get":{"operationId":"contractAbi_bsquared","summary":"Recover a contract's function selectors from bytecode + resolve names (BSquared)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bsquared/code":{"get":{"operationId":"analyzeBytecode_bsquared","summary":"Proxy detection, dangerous opcodes, codehash for any contract (BSquared)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bsquared/storage":{"get":{"operationId":"readStorage_bsquared","summary":"Read any raw contract storage slot, decoded as uint/address/bool (BSquared)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bsquared/decode":{"get":{"operationId":"decodeCalldata_bsquared","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (BSquared)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bsquared/multicall":{"get":{"operationId":"batchCalls_bsquared","summary":"Run up to 20 arbitrary read-only calls in one eth_call (BSquared)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bsquared/balance":{"get":{"operationId":"addressBalance_bsquared","summary":"Native balance, nonce, and EOA/contract state for any address (BSquared)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bsquared/block":{"get":{"operationId":"blockInfo_bsquared","summary":"Latest or specific block header (gas, base fee, tx count) (BSquared)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bsquared/tx":{"get":{"operationId":"txInfo_bsquared","summary":"Full transaction details + receipt status by hash (BSquared)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bsquared/fees":{"get":{"operationId":"feeInfo_bsquared","summary":"Current gas price + EIP-1559 fee estimate for any chain (BSquared)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bsquared/erc165":{"get":{"operationId":"interfaceSupport_bsquared","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (BSquared)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bsquared/call":{"get":{"operationId":"ethCall_bsquared","summary":"Read-only eth_call to any view function on any contract (BSquared)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bsquared/estimategas":{"get":{"operationId":"estimateGasFor_bsquared","summary":"Estimate gas for a transaction before submitting it (BSquared)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bsquared/tokenbalances":{"get":{"operationId":"tokenBalances_bsquared","summary":"ERC-20 balances for one address across many tokens at once (BSquared)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bsquared/feehistory":{"get":{"operationId":"feeHistory_bsquared","summary":"Base-fee trend + priority-fee percentiles over recent blocks (BSquared)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bsquared/blocktxs":{"get":{"operationId":"blockTxs_bsquared","summary":"List the transactions in a block (from/to/value) (BSquared)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bsquared/nativebalances":{"get":{"operationId":"nativeBalances_bsquared","summary":"Native coin balances for many addresses at once (BSquared)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bsquared/storagebatch":{"get":{"operationId":"storageBatch_bsquared","summary":"Read multiple raw storage slots of a contract at once (BSquared)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bsquared/chaininfo":{"get":{"operationId":"chainInfo_bsquared","summary":"chainId, latest block, gas price, and native symbol for a chain (BSquared)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bsquared/receipt":{"get":{"operationId":"receiptInfo_bsquared","summary":"Full transaction receipt with event logs by hash (BSquared)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bsquared/erc20meta":{"get":{"operationId":"erc20Meta_bsquared","summary":"name / symbol / decimals / totalSupply for many tokens at once (BSquared)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/bsquared/erc1271":{"get":{"operationId":"verifyErc1271_bsquared","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (BSquared)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/funki/token":{"get":{"operationId":"resolveToken_funki","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Funki)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/funki/nft":{"get":{"operationId":"nftInfo_funki","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Funki)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/funki/safe":{"get":{"operationId":"safeInfo_funki","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Funki)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/funki/txstatus":{"get":{"operationId":"txStatus_funki","summary":"Did my tx land? status, gas, revert detection (Funki)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/funki/simulate":{"get":{"operationId":"simulateCall_funki","summary":"Will this tx revert? + gas estimate, before signing (Funki)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/funki/abi":{"get":{"operationId":"contractAbi_funki","summary":"Recover a contract's function selectors from bytecode + resolve names (Funki)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/funki/code":{"get":{"operationId":"analyzeBytecode_funki","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Funki)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/funki/storage":{"get":{"operationId":"readStorage_funki","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Funki)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/funki/decode":{"get":{"operationId":"decodeCalldata_funki","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Funki)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/funki/multicall":{"get":{"operationId":"batchCalls_funki","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Funki)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/funki/balance":{"get":{"operationId":"addressBalance_funki","summary":"Native balance, nonce, and EOA/contract state for any address (Funki)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/funki/block":{"get":{"operationId":"blockInfo_funki","summary":"Latest or specific block header (gas, base fee, tx count) (Funki)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/funki/tx":{"get":{"operationId":"txInfo_funki","summary":"Full transaction details + receipt status by hash (Funki)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/funki/fees":{"get":{"operationId":"feeInfo_funki","summary":"Current gas price + EIP-1559 fee estimate for any chain (Funki)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/funki/erc165":{"get":{"operationId":"interfaceSupport_funki","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Funki)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/funki/call":{"get":{"operationId":"ethCall_funki","summary":"Read-only eth_call to any view function on any contract (Funki)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/funki/estimategas":{"get":{"operationId":"estimateGasFor_funki","summary":"Estimate gas for a transaction before submitting it (Funki)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/funki/tokenbalances":{"get":{"operationId":"tokenBalances_funki","summary":"ERC-20 balances for one address across many tokens at once (Funki)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/funki/feehistory":{"get":{"operationId":"feeHistory_funki","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Funki)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/funki/blocktxs":{"get":{"operationId":"blockTxs_funki","summary":"List the transactions in a block (from/to/value) (Funki)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/funki/nativebalances":{"get":{"operationId":"nativeBalances_funki","summary":"Native coin balances for many addresses at once (Funki)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/funki/storagebatch":{"get":{"operationId":"storageBatch_funki","summary":"Read multiple raw storage slots of a contract at once (Funki)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/funki/chaininfo":{"get":{"operationId":"chainInfo_funki","summary":"chainId, latest block, gas price, and native symbol for a chain (Funki)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/funki/receipt":{"get":{"operationId":"receiptInfo_funki","summary":"Full transaction receipt with event logs by hash (Funki)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/funki/erc20meta":{"get":{"operationId":"erc20Meta_funki","summary":"name / symbol / decimals / totalSupply for many tokens at once (Funki)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/funki/erc1271":{"get":{"operationId":"verifyErc1271_funki","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Funki)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zircuit/token":{"get":{"operationId":"resolveToken_zircuit","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Zircuit)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zircuit/nft":{"get":{"operationId":"nftInfo_zircuit","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Zircuit)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zircuit/safe":{"get":{"operationId":"safeInfo_zircuit","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Zircuit)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zircuit/txstatus":{"get":{"operationId":"txStatus_zircuit","summary":"Did my tx land? status, gas, revert detection (Zircuit)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zircuit/simulate":{"get":{"operationId":"simulateCall_zircuit","summary":"Will this tx revert? + gas estimate, before signing (Zircuit)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zircuit/abi":{"get":{"operationId":"contractAbi_zircuit","summary":"Recover a contract's function selectors from bytecode + resolve names (Zircuit)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zircuit/code":{"get":{"operationId":"analyzeBytecode_zircuit","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Zircuit)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zircuit/storage":{"get":{"operationId":"readStorage_zircuit","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Zircuit)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zircuit/decode":{"get":{"operationId":"decodeCalldata_zircuit","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Zircuit)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zircuit/multicall":{"get":{"operationId":"batchCalls_zircuit","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Zircuit)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zircuit/balance":{"get":{"operationId":"addressBalance_zircuit","summary":"Native balance, nonce, and EOA/contract state for any address (Zircuit)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zircuit/block":{"get":{"operationId":"blockInfo_zircuit","summary":"Latest or specific block header (gas, base fee, tx count) (Zircuit)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zircuit/tx":{"get":{"operationId":"txInfo_zircuit","summary":"Full transaction details + receipt status by hash (Zircuit)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zircuit/fees":{"get":{"operationId":"feeInfo_zircuit","summary":"Current gas price + EIP-1559 fee estimate for any chain (Zircuit)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zircuit/erc165":{"get":{"operationId":"interfaceSupport_zircuit","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Zircuit)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zircuit/call":{"get":{"operationId":"ethCall_zircuit","summary":"Read-only eth_call to any view function on any contract (Zircuit)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zircuit/estimategas":{"get":{"operationId":"estimateGasFor_zircuit","summary":"Estimate gas for a transaction before submitting it (Zircuit)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zircuit/tokenbalances":{"get":{"operationId":"tokenBalances_zircuit","summary":"ERC-20 balances for one address across many tokens at once (Zircuit)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zircuit/feehistory":{"get":{"operationId":"feeHistory_zircuit","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Zircuit)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zircuit/blocktxs":{"get":{"operationId":"blockTxs_zircuit","summary":"List the transactions in a block (from/to/value) (Zircuit)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zircuit/nativebalances":{"get":{"operationId":"nativeBalances_zircuit","summary":"Native coin balances for many addresses at once (Zircuit)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zircuit/storagebatch":{"get":{"operationId":"storageBatch_zircuit","summary":"Read multiple raw storage slots of a contract at once (Zircuit)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zircuit/chaininfo":{"get":{"operationId":"chainInfo_zircuit","summary":"chainId, latest block, gas price, and native symbol for a chain (Zircuit)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zircuit/receipt":{"get":{"operationId":"receiptInfo_zircuit","summary":"Full transaction receipt with event logs by hash (Zircuit)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zircuit/erc20meta":{"get":{"operationId":"erc20Meta_zircuit","summary":"name / symbol / decimals / totalSupply for many tokens at once (Zircuit)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zircuit/erc1271":{"get":{"operationId":"verifyErc1271_zircuit","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Zircuit)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/telos/token":{"get":{"operationId":"resolveToken_telos","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Telos)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/telos/nft":{"get":{"operationId":"nftInfo_telos","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Telos)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/telos/safe":{"get":{"operationId":"safeInfo_telos","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Telos)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/telos/txstatus":{"get":{"operationId":"txStatus_telos","summary":"Did my tx land? status, gas, revert detection (Telos)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/telos/simulate":{"get":{"operationId":"simulateCall_telos","summary":"Will this tx revert? + gas estimate, before signing (Telos)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/telos/abi":{"get":{"operationId":"contractAbi_telos","summary":"Recover a contract's function selectors from bytecode + resolve names (Telos)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/telos/code":{"get":{"operationId":"analyzeBytecode_telos","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Telos)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/telos/storage":{"get":{"operationId":"readStorage_telos","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Telos)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/telos/decode":{"get":{"operationId":"decodeCalldata_telos","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Telos)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/telos/multicall":{"get":{"operationId":"batchCalls_telos","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Telos)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/telos/balance":{"get":{"operationId":"addressBalance_telos","summary":"Native balance, nonce, and EOA/contract state for any address (Telos)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/telos/block":{"get":{"operationId":"blockInfo_telos","summary":"Latest or specific block header (gas, base fee, tx count) (Telos)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/telos/tx":{"get":{"operationId":"txInfo_telos","summary":"Full transaction details + receipt status by hash (Telos)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/telos/fees":{"get":{"operationId":"feeInfo_telos","summary":"Current gas price + EIP-1559 fee estimate for any chain (Telos)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/telos/erc165":{"get":{"operationId":"interfaceSupport_telos","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Telos)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/telos/call":{"get":{"operationId":"ethCall_telos","summary":"Read-only eth_call to any view function on any contract (Telos)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/telos/estimategas":{"get":{"operationId":"estimateGasFor_telos","summary":"Estimate gas for a transaction before submitting it (Telos)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/telos/tokenbalances":{"get":{"operationId":"tokenBalances_telos","summary":"ERC-20 balances for one address across many tokens at once (Telos)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/telos/feehistory":{"get":{"operationId":"feeHistory_telos","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Telos)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/telos/blocktxs":{"get":{"operationId":"blockTxs_telos","summary":"List the transactions in a block (from/to/value) (Telos)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/telos/nativebalances":{"get":{"operationId":"nativeBalances_telos","summary":"Native coin balances for many addresses at once (Telos)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/telos/storagebatch":{"get":{"operationId":"storageBatch_telos","summary":"Read multiple raw storage slots of a contract at once (Telos)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/telos/chaininfo":{"get":{"operationId":"chainInfo_telos","summary":"chainId, latest block, gas price, and native symbol for a chain (Telos)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/telos/receipt":{"get":{"operationId":"receiptInfo_telos","summary":"Full transaction receipt with event logs by hash (Telos)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/telos/erc20meta":{"get":{"operationId":"erc20Meta_telos","summary":"name / symbol / decimals / totalSupply for many tokens at once (Telos)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/telos/erc1271":{"get":{"operationId":"verifyErc1271_telos","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Telos)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wanchain/token":{"get":{"operationId":"resolveToken_wanchain","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Wanchain)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wanchain/nft":{"get":{"operationId":"nftInfo_wanchain","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Wanchain)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wanchain/safe":{"get":{"operationId":"safeInfo_wanchain","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Wanchain)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wanchain/txstatus":{"get":{"operationId":"txStatus_wanchain","summary":"Did my tx land? status, gas, revert detection (Wanchain)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wanchain/simulate":{"get":{"operationId":"simulateCall_wanchain","summary":"Will this tx revert? + gas estimate, before signing (Wanchain)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wanchain/abi":{"get":{"operationId":"contractAbi_wanchain","summary":"Recover a contract's function selectors from bytecode + resolve names (Wanchain)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wanchain/code":{"get":{"operationId":"analyzeBytecode_wanchain","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Wanchain)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wanchain/storage":{"get":{"operationId":"readStorage_wanchain","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Wanchain)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wanchain/decode":{"get":{"operationId":"decodeCalldata_wanchain","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Wanchain)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wanchain/multicall":{"get":{"operationId":"batchCalls_wanchain","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Wanchain)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wanchain/balance":{"get":{"operationId":"addressBalance_wanchain","summary":"Native balance, nonce, and EOA/contract state for any address (Wanchain)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wanchain/block":{"get":{"operationId":"blockInfo_wanchain","summary":"Latest or specific block header (gas, base fee, tx count) (Wanchain)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wanchain/tx":{"get":{"operationId":"txInfo_wanchain","summary":"Full transaction details + receipt status by hash (Wanchain)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wanchain/fees":{"get":{"operationId":"feeInfo_wanchain","summary":"Current gas price + EIP-1559 fee estimate for any chain (Wanchain)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wanchain/erc165":{"get":{"operationId":"interfaceSupport_wanchain","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Wanchain)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wanchain/call":{"get":{"operationId":"ethCall_wanchain","summary":"Read-only eth_call to any view function on any contract (Wanchain)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wanchain/estimategas":{"get":{"operationId":"estimateGasFor_wanchain","summary":"Estimate gas for a transaction before submitting it (Wanchain)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wanchain/tokenbalances":{"get":{"operationId":"tokenBalances_wanchain","summary":"ERC-20 balances for one address across many tokens at once (Wanchain)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wanchain/feehistory":{"get":{"operationId":"feeHistory_wanchain","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Wanchain)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wanchain/blocktxs":{"get":{"operationId":"blockTxs_wanchain","summary":"List the transactions in a block (from/to/value) (Wanchain)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wanchain/nativebalances":{"get":{"operationId":"nativeBalances_wanchain","summary":"Native coin balances for many addresses at once (Wanchain)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wanchain/storagebatch":{"get":{"operationId":"storageBatch_wanchain","summary":"Read multiple raw storage slots of a contract at once (Wanchain)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wanchain/chaininfo":{"get":{"operationId":"chainInfo_wanchain","summary":"chainId, latest block, gas price, and native symbol for a chain (Wanchain)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wanchain/receipt":{"get":{"operationId":"receiptInfo_wanchain","summary":"Full transaction receipt with event logs by hash (Wanchain)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wanchain/erc20meta":{"get":{"operationId":"erc20Meta_wanchain","summary":"name / symbol / decimals / totalSupply for many tokens at once (Wanchain)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/wanchain/erc1271":{"get":{"operationId":"verifyErc1271_wanchain","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Wanchain)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zero/token":{"get":{"operationId":"resolveToken_zero","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Zero)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zero/nft":{"get":{"operationId":"nftInfo_zero","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Zero)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zero/safe":{"get":{"operationId":"safeInfo_zero","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Zero)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zero/txstatus":{"get":{"operationId":"txStatus_zero","summary":"Did my tx land? status, gas, revert detection (Zero)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zero/simulate":{"get":{"operationId":"simulateCall_zero","summary":"Will this tx revert? + gas estimate, before signing (Zero)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zero/abi":{"get":{"operationId":"contractAbi_zero","summary":"Recover a contract's function selectors from bytecode + resolve names (Zero)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zero/code":{"get":{"operationId":"analyzeBytecode_zero","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Zero)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zero/storage":{"get":{"operationId":"readStorage_zero","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Zero)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zero/decode":{"get":{"operationId":"decodeCalldata_zero","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Zero)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zero/multicall":{"get":{"operationId":"batchCalls_zero","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Zero)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zero/balance":{"get":{"operationId":"addressBalance_zero","summary":"Native balance, nonce, and EOA/contract state for any address (Zero)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zero/block":{"get":{"operationId":"blockInfo_zero","summary":"Latest or specific block header (gas, base fee, tx count) (Zero)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zero/tx":{"get":{"operationId":"txInfo_zero","summary":"Full transaction details + receipt status by hash (Zero)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zero/fees":{"get":{"operationId":"feeInfo_zero","summary":"Current gas price + EIP-1559 fee estimate for any chain (Zero)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zero/erc165":{"get":{"operationId":"interfaceSupport_zero","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Zero)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zero/call":{"get":{"operationId":"ethCall_zero","summary":"Read-only eth_call to any view function on any contract (Zero)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zero/estimategas":{"get":{"operationId":"estimateGasFor_zero","summary":"Estimate gas for a transaction before submitting it (Zero)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zero/tokenbalances":{"get":{"operationId":"tokenBalances_zero","summary":"ERC-20 balances for one address across many tokens at once (Zero)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zero/feehistory":{"get":{"operationId":"feeHistory_zero","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Zero)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zero/blocktxs":{"get":{"operationId":"blockTxs_zero","summary":"List the transactions in a block (from/to/value) (Zero)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zero/nativebalances":{"get":{"operationId":"nativeBalances_zero","summary":"Native coin balances for many addresses at once (Zero)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zero/storagebatch":{"get":{"operationId":"storageBatch_zero","summary":"Read multiple raw storage slots of a contract at once (Zero)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zero/chaininfo":{"get":{"operationId":"chainInfo_zero","summary":"chainId, latest block, gas price, and native symbol for a chain (Zero)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zero/receipt":{"get":{"operationId":"receiptInfo_zero","summary":"Full transaction receipt with event logs by hash (Zero)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zero/erc20meta":{"get":{"operationId":"erc20Meta_zero","summary":"name / symbol / decimals / totalSupply for many tokens at once (Zero)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/zero/erc1271":{"get":{"operationId":"verifyErc1271_zero","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Zero)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lumia/token":{"get":{"operationId":"resolveToken_lumia","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (Lumia)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lumia/nft":{"get":{"operationId":"nftInfo_lumia","summary":"ERC-721/1155 detection + collection + per-token owner/URI (Lumia)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lumia/safe":{"get":{"operationId":"safeInfo_lumia","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (Lumia)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lumia/txstatus":{"get":{"operationId":"txStatus_lumia","summary":"Did my tx land? status, gas, revert detection (Lumia)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lumia/simulate":{"get":{"operationId":"simulateCall_lumia","summary":"Will this tx revert? + gas estimate, before signing (Lumia)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lumia/abi":{"get":{"operationId":"contractAbi_lumia","summary":"Recover a contract's function selectors from bytecode + resolve names (Lumia)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lumia/code":{"get":{"operationId":"analyzeBytecode_lumia","summary":"Proxy detection, dangerous opcodes, codehash for any contract (Lumia)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lumia/storage":{"get":{"operationId":"readStorage_lumia","summary":"Read any raw contract storage slot, decoded as uint/address/bool (Lumia)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lumia/decode":{"get":{"operationId":"decodeCalldata_lumia","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (Lumia)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lumia/multicall":{"get":{"operationId":"batchCalls_lumia","summary":"Run up to 20 arbitrary read-only calls in one eth_call (Lumia)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lumia/balance":{"get":{"operationId":"addressBalance_lumia","summary":"Native balance, nonce, and EOA/contract state for any address (Lumia)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lumia/block":{"get":{"operationId":"blockInfo_lumia","summary":"Latest or specific block header (gas, base fee, tx count) (Lumia)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lumia/tx":{"get":{"operationId":"txInfo_lumia","summary":"Full transaction details + receipt status by hash (Lumia)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lumia/fees":{"get":{"operationId":"feeInfo_lumia","summary":"Current gas price + EIP-1559 fee estimate for any chain (Lumia)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lumia/erc165":{"get":{"operationId":"interfaceSupport_lumia","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (Lumia)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lumia/call":{"get":{"operationId":"ethCall_lumia","summary":"Read-only eth_call to any view function on any contract (Lumia)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lumia/estimategas":{"get":{"operationId":"estimateGasFor_lumia","summary":"Estimate gas for a transaction before submitting it (Lumia)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lumia/tokenbalances":{"get":{"operationId":"tokenBalances_lumia","summary":"ERC-20 balances for one address across many tokens at once (Lumia)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lumia/feehistory":{"get":{"operationId":"feeHistory_lumia","summary":"Base-fee trend + priority-fee percentiles over recent blocks (Lumia)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lumia/blocktxs":{"get":{"operationId":"blockTxs_lumia","summary":"List the transactions in a block (from/to/value) (Lumia)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lumia/nativebalances":{"get":{"operationId":"nativeBalances_lumia","summary":"Native coin balances for many addresses at once (Lumia)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lumia/storagebatch":{"get":{"operationId":"storageBatch_lumia","summary":"Read multiple raw storage slots of a contract at once (Lumia)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lumia/chaininfo":{"get":{"operationId":"chainInfo_lumia","summary":"chainId, latest block, gas price, and native symbol for a chain (Lumia)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lumia/receipt":{"get":{"operationId":"receiptInfo_lumia","summary":"Full transaction receipt with event logs by hash (Lumia)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lumia/erc20meta":{"get":{"operationId":"erc20Meta_lumia","summary":"name / symbol / decimals / totalSupply for many tokens at once (Lumia)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/lumia/erc1271":{"get":{"operationId":"verifyErc1271_lumia","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (Lumia)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xlayer/token":{"get":{"operationId":"resolveToken_xlayer","summary":"ERC-20 metadata + supply + EOA/contract/proxy resolution (X Layer)","description":"Resolve any Base address to verified ERC-20 metadata (name, symbol, decimals, total + circulating + burned supply) and tell contracts apart from wallets (EOA), proxies, and self-destructed code — live from raw chain, one call. Pass ?token=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"token","in":"query","required":true,"description":"Base address to resolve (ERC-20 contract or wallet).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"},{"name":"holders","in":"query","required":false,"description":"Optional comma-separated list of up to 5 addresses to also return balanceOf for.","schema":{"type":"string"},"example":"0x000000000000000000000000000000000000dEaD"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address resolved"},"block":{"type":"integer","description":"Base block height"},"accountType":{"type":"string","description":"eoa | contract | contract_non_erc20 | proxy"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc20":{"type":"boolean","description":"exposes decimals + totalSupply"},"isProxy":{"type":"boolean","description":"EIP-1967/beacon proxy detected"},"implementationAddress":{"type":"string","description":"proxy implementation (or null)"},"name":{"type":"string","description":"token name"},"symbol":{"type":"string","description":"token symbol"},"decimals":{"type":"integer","description":"token decimals"},"totalSupply":{"type":"string","description":"total supply (decimal string)"},"circulatingSupply":{"type":"string","description":"total minus burned (decimal string)"},"burnedPct":{"type":"number","description":"percent of supply at zero/dead address"},"flags":{"type":"array","items":{"type":"string"},"description":"e.g. high_burn, is_proxy, not_erc20, zero_supply"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xlayer/nft":{"get":{"operationId":"nftInfo_xlayer","summary":"ERC-721/1155 detection + collection + per-token owner/URI (X Layer)","description":"Resolve any Base contract to its NFT identity: auto-detects ERC-721 vs ERC-1155 (ERC-165), returns collection name/symbol and totalSupply where exposed, and — if you pass ?tokenId — the RAW on-chain tokenURI/uri plus (for ERC-721) the current owner. The raw tokenURI is returned verbatim and never dereferenced (auditable, zero third-party data). Pass ?contract=0x<address> (optionally &tokenId=<n>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"contract","in":"query","required":true,"description":"Base NFT contract address (ERC-721 or ERC-1155).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0xEa2a41c02fA86A4901826615F9796e603C6a4491"},{"name":"tokenId","in":"query","required":false,"description":"Optional token id (decimal). If given, returns owner (721) + tokenURI/uri.","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"1"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","description":"contract resolved"},"standard":{"type":"string","description":"erc721 | erc1155 | unknown"},"isContract":{"type":"boolean","description":"has bytecode"},"isErc721":{"type":"boolean","description":"ERC-721"},"isErc1155":{"type":"boolean","description":"ERC-1155"},"name":{"type":"string","description":"collection name (or null)"},"symbol":{"type":"string","description":"collection symbol (or null)"},"totalSupply":{"type":"string","description":"total supply (or null)"},"tokenId":{"type":"string","description":"queried id (or null)"},"token":{"type":"object","properties":{"owner":{"type":"string","description":"ERC-721 owner (or null)"},"tokenUri":{"type":"string","description":"RAW on-chain tokenURI (or null)"},"tokenUriScheme":{"type":"string","description":"ipfs|data|ar|https|http|other"}}},"flags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xlayer/safe":{"get":{"operationId":"safeInfo_xlayer","summary":"Gnosis Safe: owners, threshold, nonce, version, modules (X Layer)","description":"Introspect a Gnosis Safe / Safe{Wallet} multisig on Base before interacting with it: its owner set, signature threshold (M-of-N), current nonce, contract VERSION, and any enabled modules (which can move funds without owner signatures). Reports isSafe:false gracefully for non-Safe addresses. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to introspect as a Gnosis Safe multisig.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address introspected"},"block":{"type":"integer","description":"Base block height"},"isContract":{"type":"boolean","description":"has bytecode"},"isSafe":{"type":"boolean","description":"is a valid Safe multisig"},"version":{"type":"string","description":"Safe version (or null)"},"owners":{"type":"array","items":{"type":"string"},"description":"owner addresses (or null)"},"ownerCount":{"type":"integer","description":"number of owners"},"threshold":{"type":"integer","description":"signatures required (M)"},"thresholdPolicy":{"type":"string","description":"e.g. 2-of-3"},"nonce":{"type":"integer","description":"Safe tx nonce"},"modules":{"type":"array","items":{"type":"string"},"description":"enabled module addresses"},"modulesEnabled":{"type":"boolean","description":"any modules enabled (fund-moving risk)"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"e.g. single_signer_threshold, modules_enabled"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xlayer/txstatus":{"get":{"operationId":"txStatus_xlayer","summary":"Did my tx land? status, gas, revert detection (X Layer)","description":"Status of any Base transaction: success / reverted / pending / not_found, plus block, confirmations, gas used + ETH cost, from/to/value and log count — read live from the receipt. The call an agent makes after broadcasting a tx. Pass ?hash=0x<txhash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash (0x + 64 hex).","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"visible to the node"},"status":{"type":"string","description":"success | reverted | pending | not_found"},"reverted":{"type":"boolean","description":"execution reverted"},"blockNumber":{"type":"integer","description":"inclusion block"},"confirmations":{"type":"integer","description":"blocks since inclusion"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient (or null)"},"valueEth":{"type":"string","description":"ETH value transferred"},"gasUsed":{"type":"string","description":"gas units used"},"effectiveGasPriceGwei":{"type":"number","description":"effective gas price (gwei)"},"gasCostEth":{"type":"string","description":"total gas cost in ETH"},"logsCount":{"type":"integer","description":"number of logs emitted"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xlayer/simulate":{"get":{"operationId":"simulateCall_xlayer","summary":"Will this tx revert? + gas estimate, before signing (X Layer)","description":"Pre-flight a Base transaction BEFORE signing: does the call revert, what does it return, and how much gas will it cost — via eth_call + estimateGas against live state. Lets an agent refuse a doomed or malicious tx. Pass ?to=0x..&data=0x.. (optional &from=0x..&value=<wei>).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract/address of the call.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata hex (0x..). Omit for a plain value transfer.","schema":{"type":"string"},"example":"0x06fdde03"},{"name":"from","in":"query","required":false,"description":"Caller to simulate as (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"ETH value in wei (integer string).","schema":{"type":"string"},"example":"0"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"from":{"type":"string","description":"simulated caller (or null)"},"valueWei":{"type":"string","description":"value in wei"},"success":{"type":"boolean","description":"call did not revert"},"willRevert":{"type":"boolean","description":"call reverts"},"revertReason":{"type":"string","description":"first line of the revert error (or null)"},"returnData":{"type":"string","description":"returned data hex (or null)"},"gasEstimate":{"type":"string","description":"estimated gas units (or null if reverting)"},"block":{"type":"integer","description":"Base block height"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xlayer/abi":{"get":{"operationId":"contractAbi_xlayer","summary":"Recover a contract's function selectors from bytecode + resolve names (X Layer)","description":"Reverse-engineer any Base contract's callable interface straight from deployed bytecode — even unverified ones. Scans the PUSH4 selector-dispatcher pattern to recover 4-byte function selectors, then resolves each to a human signature via the free 4byte registry, plus an interface guess (erc20/721/1155/4626). The selector list is authoritative; labels are best-effort. Pass ?address=0x<contract> (optionally &resolve=false, &followProxy=true).","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract to reverse-engineer (alias: contract).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"resolve","in":"query","required":false,"description":"Resolve selectors to names via 4byte: 'true' (default) or 'false'.","schema":{"type":"string"},"example":"true"},{"name":"followProxy","in":"query","required":false,"description":"Also merge the implementation's selectors if the target is a proxy: 'true' or 'false' (default).","schema":{"type":"string"},"example":"false"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"isContract":{"type":"boolean","description":"has bytecode"},"block":{"type":"integer","description":"Base block height"},"selectorCount":{"type":"integer","description":"unique selectors recovered"},"functions":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte selector"},"signatures":{"type":"array","items":{"type":"string"}},"primarySignature":{"type":"string","description":"canonical signature (or null)"},"resolved":{"type":"boolean","description":"resolved via 4byte"}}}},"interfaceGuess":{"type":"array","items":{"type":"string"},"description":"e.g. erc20, erc721, erc4626"},"thirdPartyDataUsed":{"type":"boolean","description":"true when resolve!=false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xlayer/code":{"get":{"operationId":"analyzeBytecode_xlayer","summary":"Proxy detection, dangerous opcodes, codehash for any contract (X Layer)","description":"Inspect any Base address's deployed bytecode: is-contract, EIP-1967/UUPS/beacon/minimal-proxy detection + implementation address, dangerous opcodes (SELFDESTRUCT, DELEGATECALL), code size, and keccak codehash — computed live from raw chain. Pass ?address=0x<address>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address to inspect (token alias also accepted).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"token","in":"query","required":false,"description":"Alias for address (agent ergonomics).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address inspected"},"isContract":{"type":"boolean","description":"has bytecode"},"codeSizeBytes":{"type":"integer","description":"deployed code size"},"codeHash":{"type":"string","description":"keccak256 of bytecode"},"isProxy":{"type":"boolean","description":"proxy detected"},"proxyType":{"type":"string","description":"uups|transparent|beacon|eip1167-minimal|null"},"implementationAddress":{"type":"string","description":"resolved implementation (or null)"},"hasSelfdestruct":{"type":"boolean","description":"SELFDESTRUCT opcode present"},"hasDelegatecall":{"type":"boolean","description":"DELEGATECALL opcode present"},"upgradeable":{"type":"boolean","description":"implementation can change"},"verdict":{"type":"string","description":"eoa|plain|caution"},"riskFlags":{"type":"array","items":{"type":"string"}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xlayer/storage":{"get":{"operationId":"readStorage_xlayer","summary":"Read any raw contract storage slot, decoded as uint/address/bool (X Layer)","description":"Read a raw 32-byte storage word from any Base contract via eth_getStorageAt, returned both raw and decoded: asUint (decimal), asAddress (checksummed low-20-bytes, or null), asBool. Slot accepts hex or decimal. Inspect EIP-1967 proxy slots, packed flags, ownership/pause bits, or any custom slot an ABI won't expose. Pass ?address=0x<contract>&slot=0x<slot|decimal>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address whose storage to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x2626664c2603336E57B271c5C0b26F421741e481"},{"name":"slot","in":"query","required":true,"description":"Storage slot as hex (0x..) or decimal. Example is the EIP-1967 implementation slot.","schema":{"type":"string"},"example":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract read"},"block":{"type":"integer","description":"Base block height"},"slot":{"type":"string","description":"normalized 32-byte slot key"},"raw":{"type":"string","description":"raw 32-byte word (hex)"},"asUint":{"type":"string","description":"word as unsigned decimal"},"asAddress":{"type":"string","description":"checksummed low-20-bytes (or null)"},"asBool":{"type":"boolean","description":"word is non-zero"},"isZero":{"type":"boolean","description":"whole word is zero"},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xlayer/decode":{"get":{"operationId":"decodeCalldata_xlayer","summary":"Decode raw EVM calldata (or a Base tx hash) into function + typed args (X Layer)","description":"Decode raw EVM transaction calldata (or a Base tx hash) into a human-readable function name + named, typed arguments, with 4byte selector-collision resolution. Argument decoding is computed locally with viem (authoritative); function labels come from the public 4byte registry. Pass ?data=0x<calldata> or ?txHash=0x<hash>.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"data","in":"query","required":false,"description":"Raw calldata hex (0x + 4-byte selector + ABI-encoded args). Required unless txHash is given.","schema":{"type":"string"},"example":"0xa9059cbb0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000000000000000000000000000008ac7230489e80000"},{"name":"txHash","in":"query","required":false,"description":"Base mainnet transaction hash; its input calldata is fetched and decoded. Required unless data is given.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":false,"description":"Optional target contract address; its bytecode presence is surfaced as context.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"selector":{"type":"string","description":"4-byte function selector"},"matched":{"type":"boolean","description":"true if a signature was resolved"},"functionName":{"type":"string","description":"resolved function name (or null)"},"signature":{"type":"string","description":"full function signature (or null)"},"args":{"type":"array","description":"decoded [{name,type,value}] (or null)","items":{"type":"object","properties":{"name":{"type":"string","description":"arg name"},"type":{"type":"string","description":"solidity type"},"value":{"type":"string","description":"decoded value as string"}}}},"candidateSignatures":{"type":"array","items":{"type":"string"},"description":"all 4byte candidates, canonical first"},"collision":{"type":"boolean","description":"true if multiple 4byte signatures share this selector"},"selectorRegistry":{"type":"string","description":"4byte.directory"},"thirdPartyDataUsed":{"type":"boolean","description":"true — selector labels from 4byte; arg decoding is local"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xlayer/multicall":{"get":{"operationId":"batchCalls_xlayer","summary":"Run up to 20 arbitrary read-only calls in one eth_call (X Layer)","description":"Aggregate up to 20 arbitrary read-only Base contract calls into ONE Multicall3 aggregate3 eth_call at a single pinned block — each sub-call allowFailure so one revert never fails the batch. Returns per-call success + raw returnData (decode client-side). A protocol-agnostic read primitive. Pass repeated ?to=0x..&data=0x.. pairs (1-20), or ?calls=addr:data,addr:data.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Repeatable target address; one per call (1-20), paired positionally with data.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"},{"name":"data","in":"query","required":false,"description":"Repeatable calldata hex, positionally matched to each to (empty=0x).","schema":{"type":"string"},"example":"0x313ce567"},{"name":"calls","in":"query","required":false,"description":"Compact fallback: addr:data,addr:data,...","schema":{"type":"string"},"example":"0x4200000000000000000000000000000000000006:0x313ce567"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"multicall3":{"type":"string","description":"Multicall3 address used"},"block":{"type":"integer","description":"pinned block (or null)"},"count":{"type":"integer","description":"valid calls executed"},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"caller position"},"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"false only if the sub-call reverted"},"returnData":{"type":"string","description":"raw 0x-hex to decode client-side"},"returnBytes":{"type":"integer","description":"byte length"},"emptyReturn":{"type":"boolean","description":"success but returnData is 0x"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"excluded index"},"reason":{"type":"string","description":"invalid_address | invalid_data"}}}},"thirdPartyDataUsed":{"type":"boolean","description":"always false"},"computedAt":{"type":"string","description":"ISO-8601 timestamp"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xlayer/balance":{"get":{"operationId":"addressBalance_xlayer","summary":"Native balance, nonce, and EOA/contract state for any address (X Layer)","description":"Native coin balance (wei + formatted), transaction nonce, and whether the address is a contract or EOA (with code size), read live from chain. Pass ?address=0x<address>. Served on Base at /balance and on every supported chain at /{chain}/balance.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Address to inspect.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isContract":{"type":"boolean","description":"contract vs EOA"},"codeSizeBytes":{"type":"integer","description":"bytecode size in bytes"},"nonce":{"type":"integer","description":"transaction nonce"},"nativeBalanceWei":{"type":"string","description":"balance in wei"},"nativeBalance":{"type":"string","description":"balance, formatted"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xlayer/block":{"get":{"operationId":"blockInfo_xlayer","summary":"Latest or specific block header (gas, base fee, tx count) (X Layer)","description":"Block header — number, hash, timestamp, gas used/limit + utilization %, EIP-1559 base fee, and transaction count. Latest by default, or pass ?number=<height>. Served on Base at /block and every supported chain at /{chain}/block.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"hash":{"type":"string","description":"block hash"},"timestamp":{"type":"string","description":"unix seconds"},"gasUsed":{"type":"string","description":"gas used"},"gasLimit":{"type":"string","description":"gas limit"},"baseFeePerGas":{"type":"string","description":"base fee (wei)"},"txCount":{"type":"integer","description":"transactions in block"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xlayer/tx":{"get":{"operationId":"txInfo_xlayer","summary":"Full transaction details + receipt status by hash (X Layer)","description":"Transaction details (from/to/value/gas/nonce/input selector) plus receipt status (success/reverted/pending), gas used, and log count. Pass ?hash=0x<64-hex>. Served on Base at /tx and every supported chain at /{chain}/tx.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"from":{"type":"string","description":"sender"},"to":{"type":"string","description":"recipient"},"value":{"type":"string","description":"value, formatted"},"status":{"type":"string","description":"success | reverted | pending"},"gasUsed":{"type":"string","description":"gas used"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xlayer/fees":{"get":{"operationId":"feeInfo_xlayer","summary":"Current gas price + EIP-1559 fee estimate for any chain (X Layer)","description":"Live gas price and EIP-1559 max-fee / priority-fee estimate (gwei + wei) for the chain, with an eip1559 flag. No params. Served on Base at /fees and every supported chain at /{chain}/fees.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"gasPriceGwei":{"type":"string","description":"gas price (gwei)"},"maxFeePerGasGwei":{"type":"string","description":"max fee (gwei)"},"maxPriorityFeePerGasGwei":{"type":"string","description":"priority fee (gwei)"},"eip1559":{"type":"boolean","description":"supports EIP-1559"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xlayer/erc165":{"get":{"operationId":"interfaceSupport_xlayer","summary":"Detect which standard interfaces a contract implements (ERC-721/1155/royalty) (X Layer)","description":"Checks ERC-165 supportsInterface for the common standards (ERC-721, ERC-1155, metadata, enumerable, ERC-2981 royalties) and returns a support map + likely type. Pass ?address=0x<contract>. Served on Base at /erc165 and every supported chain at /{chain}/erc165.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address to classify.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"address"},"isErc165":{"type":"boolean","description":"implements ERC-165"},"likelyType":{"type":"string","description":"ERC-721 | ERC-1155 | other"},"supports":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xlayer/call":{"get":{"operationId":"ethCall_xlayer","summary":"Read-only eth_call to any view function on any contract (X Layer)","description":"Executes a read-only eth_call and returns the raw hex result (or the revert). Pass ?to=0x<contract>&data=0x<calldata> (optional ?from=). Decode the result against the target ABI. No state is changed. Served on Base at /call and every supported chain at /{chain}/call.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Target contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":true,"description":"ABI-encoded calldata (0x…). e.g. 0x18160ddd = totalSupply().","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"example":"0x18160ddd"},{"name":"from","in":"query","required":false,"description":"Optional caller (msg.sender).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"call succeeded"},"reverted":{"type":"boolean","description":"reverted"},"result":{"type":"string","description":"raw hex result"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xlayer/estimategas":{"get":{"operationId":"estimateGasFor_xlayer","summary":"Estimate gas for a transaction before submitting it (X Layer)","description":"Runs eth_estimateGas for a proposed transaction (?to=&data=&from=&value=) and returns the gas estimate, or a revert reason if it would fail. Read-only — nothing is submitted. Served on Base at /estimategas and every supported chain at /{chain}/estimategas.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"to","in":"query","required":true,"description":"Recipient / contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"data","in":"query","required":false,"description":"Calldata (0x…). Omit for a plain transfer.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"}},{"name":"from","in":"query","required":false,"description":"Sender address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"value","in":"query","required":false,"description":"Native value in wei.","schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","description":"target"},"success":{"type":"boolean","description":"estimable"},"gas":{"type":"string","description":"estimated gas units"},"reverted":{"type":"boolean","description":"would revert"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xlayer/tokenbalances":{"get":{"operationId":"tokenBalances_xlayer","summary":"ERC-20 balances for one address across many tokens at once (X Layer)","description":"Returns balances (raw + formatted, with symbol + decimals) for one wallet across a list of ERC-20 tokens. Pass ?address=0x<wallet>&tokens=0x..,0x.. (max 20). Served on Base at /tokenbalances and every supported chain at /{chain}/tokenbalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address to check.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"},{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"count":{"type":"integer","description":"tokens checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xlayer/feehistory":{"get":{"operationId":"feeHistory_xlayer","summary":"Base-fee trend + priority-fee percentiles over recent blocks (X Layer)","description":"eth_feeHistory over the last N blocks (default 10, max 50): base-fee latest/oldest + trend, average gas-used ratio, and priority-fee percentiles (p10/p50/p90) — for timing transactions. Optional ?blocks=. Served on Base at /feehistory and every chain at /{chain}/feehistory.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"blocks","in":"query","required":false,"description":"Recent blocks to sample (1-50, default 10).","schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"integer","description":"blocks sampled"},"baseFeeLatestGwei":{"type":"string","description":"latest base fee (gwei)"},"baseFeeTrend":{"type":"string","description":"rising | falling | flat"},"avgGasUsedRatio":{"type":"number","description":"avg gas-used ratio 0-1"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xlayer/blocktxs":{"get":{"operationId":"blockTxs_xlayer","summary":"List the transactions in a block (from/to/value) (X Layer)","description":"Transactions in a block — hash, from, to, value, input size — for the latest block or ?number=<height>. First 50 returned. Served on Base at /blocktxs and every chain at /{chain}/blocktxs.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"number","in":"query","required":false,"description":"Block height (default: latest).","schema":{"type":"integer"},"example":20000000}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"block number"},"totalTx":{"type":"integer","description":"total transactions"},"returned":{"type":"integer","description":"returned (max 50)"},"transactions":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xlayer/nativebalances":{"get":{"operationId":"nativeBalances_xlayer","summary":"Native coin balances for many addresses at once (X Layer)","description":"Native (gas-coin) balance for up to 20 addresses in one call. Pass ?addresses=0x..,0x.. Served on Base at /nativebalances and every chain at /{chain}/nativebalances.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"addresses","in":"query","required":true,"description":"Comma-separated addresses (max 20).","schema":{"type":"string"},"example":"0x6405e3fF90498A2270652f34a8B3666AA43117c3"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"addresses checked"},"balances":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xlayer/storagebatch":{"get":{"operationId":"storageBatch_xlayer","summary":"Read multiple raw storage slots of a contract at once (X Layer)","description":"Raw storage values for up to 10 slots of a contract (proxy / state introspection). Pass ?address=0x<contract>&slots=0,1,0x360894... (decimal or hex). Served on Base at /storagebatch and every chain at /{chain}/storagebatch.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"slots","in":"query","required":true,"description":"Comma-separated slots (decimal or 0x-hex, max 10).","schema":{"type":"string"},"example":"0,1,2"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"contract"},"count":{"type":"integer","description":"slots read"},"slots":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xlayer/chaininfo":{"get":{"operationId":"chainInfo_xlayer","summary":"chainId, latest block, gas price, and native symbol for a chain (X Layer)","description":"Live chain identity + head state: chainId, native gas-coin symbol, latest block height, current gas price. No params. Served on Base at /chaininfo and every supported chain at /{chain}/chaininfo.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id"},"nativeSymbol":{"type":"string","description":"gas coin symbol"},"latestBlock":{"type":"string","description":"latest block height"},"gasPriceGwei":{"type":"string","description":"gas price (gwei)"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xlayer/receipt":{"get":{"operationId":"receiptInfo_xlayer","summary":"Full transaction receipt with event logs by hash (X Layer)","description":"Transaction receipt — status, block, gas used, effective gas price, and the emitted event logs (address/topics/data, first 30) for parsing. Pass ?hash=0x<64-hex>. Served on Base at /receipt and every chain at /{chain}/receipt.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"hash","in":"query","required":true,"description":"Transaction hash.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","description":"tx hash"},"found":{"type":"boolean","description":"exists"},"status":{"type":"string","description":"success | reverted"},"gasUsed":{"type":"string","description":"gas used"},"logCount":{"type":"integer","description":"event logs"},"logs":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xlayer/erc20meta":{"get":{"operationId":"erc20Meta_xlayer","summary":"name / symbol / decimals / totalSupply for many tokens at once (X Layer)","description":"ERC-20 metadata (name, symbol, decimals, total supply) for up to 20 tokens in one call. Pass ?tokens=0x..,0x.. Served on Base at /erc20meta and every chain at /{chain}/erc20meta.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"tokens","in":"query","required":true,"description":"Comma-separated ERC-20 addresses (max 20).","schema":{"type":"string"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"tokens checked"},"tokens":{"type":"object","properties":{}}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/xlayer/erc1271":{"get":{"operationId":"verifyErc1271_xlayer","summary":"Verify a signature against a smart-contract wallet (ERC-1271) (X Layer)","description":"Checks ERC-1271 isValidSignature on a smart-contract wallet — isValid=true when the contract returns the 0x1626ba7e magic value. Pass ?address=0x<wallet>&hash=0x<32-byte digest>&signature=0x<sig>. Served on Base at /erc1271 and every chain at /{chain}/erc1271.","security":[{"x402":[]}],"x-payment-info":{"price":"$0.01","amount":"10000","asset":"USDC","network":"eip155:8453","payTo":"0x6405e3fF90498A2270652f34a8B3666AA43117c3","scheme":"exact","protocol":"x402","x402Version":2},"parameters":[{"name":"address","in":"query","required":true,"description":"Smart-contract wallet address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"example":"0x0000000000000000000000000000000000000000"},{"name":"hash","in":"query","required":true,"description":"32-byte message digest.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"example":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"name":"signature","in":"query","required":true,"description":"Signature bytes (0x…).","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]+$"},"example":"0x00"}],"responses":{"200":{"description":"Result JSON","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"wallet"},"isValid":{"type":"boolean","description":"valid per ERC-1271"},"magicReturned":{"type":"string","description":"returned bytes4"}}}}}},"400":{"description":"Invalid parameters"},"402":{"description":"Payment required (x402; challenge in the PAYMENT-REQUIRED header)"}}}},"/sample":{"get":{"operationId":"sample","summary":"Free example /scan response","security":[],"responses":{"200":{"description":"Example response"}}}},"/health":{"get":{"operationId":"health","summary":"Uptime check","security":[],"responses":{"200":{"description":"OK"}}}},"/catalog":{"get":{"operationId":"catalog","summary":"Paginated catalog of per-contract analyses (free index over the paid endpoints)","security":[],"parameters":[{"name":"offset","in":"query","schema":{"type":"integer"}},{"name":"limit","in":"query","schema":{"type":"integer"}}],"responses":{"200":{"description":"Catalog page"}}}}}}