ARYSPHERE x402 chain reads and token verdicts
by ari001.tailb4ac3a.ts.net · remote · no sign-in to list tools · v1.0.0 · published by net.ts.tailb4ac3a.ari001
Pay-per-call onchain reads (Base, Ethereum, Gnosis), token verdicts and LLM chat over x402 USDC
50 tools: 3 change things and 47 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things3Claude Code: ask: see these tools
- Only reads47Claude Code: allow: see these tools
18 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http arysphere-x402 https://ari001.tailb4ac3a.ts.net/mcpFindings
Matches of fixed checks, with the text they matched.
The description contains a 42-character base64 string.
What this check looks forMatched text
description: "...e keys.", "token": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", "written_by": "te..."
The description contains a 42-character base64 string.
What this check looks forMatched text
description: "...}, ""], "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", "implementation":..."
The description contains a 42-character base64 string.
What this check looks forMatched text
description: "..."implementation": "0x2Ce6311ddAE708829bc0784C967b7d77D19FD779", "isProxy": true,..."
The description contains a 42-character base64 string.
What this check looks forMatched text
description: "...ons": [{"address": "0x2Ce6311ddAE708829bc0784C967b7d77D19FD779", "name": "FiatToke..."
The description contains a 42-character base64 string.
What this check looks forMatched text
description: "...e keys.", "token": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", "written_by": "te..."
The description contains a 42-character base64 string.
What this check looks forMatched text
description: "...sult": {"address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", "age_secs": 0, "c..."
Show 12 more findingsShow fewer
The description contains a 42-character base64 string.
What this check looks forMatched text
description: "...ion"}], "address": "0xdAC17F958D2ee523a2206206994597C13D831ec7", "implementation":..."
The description contains a 42-character base64 string.
What this check looks forMatched text
description: "...3252496", "token": "0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D"}, "service": "x402..."
The description contains a 42-character base64 string.
What this check looks forMatched text
description: "...acts": {"address": "0xdAC17F958D2ee523a2206206994597C13D831ec7", "code_bytes": 110..."
The description contains a 42-character base64 string.
What this check looks forMatched text
description: "...out it.", "token": "0xdAC17F958D2ee523a2206206994597C13D831ec7", "written_by": "mo..."
The description is 2,620 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "...y": "template"}, "service": "x402_bazaar_token_verdict_v2.base_token_verdict_v3"}"
The description is 2,233 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "...fbfa883441b76ed426"}, "service": "x402_chain_reads_v1.base_eth_getblockbynumber"}"
The description is 2,613 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "...y": "template"}, "service": "x402_bazaar_token_verdict_v2.base_token_verdict_v3"}"
The description is 2,497 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "..."value_usd": 0.0, "wraps": []}, "service": "x402_chain_reads_v1.base_tx_explain"}"
The description is 2,111 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "...19ae16886f5321840808584"}, "service": "x402_chain_reads_v1.eth_getblockbynumber"}"
The description is 2,499 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "..."value_usd": 0.0, "wraps": []}, "service": "x402_chain_reads_v1.eth_tx_explain"}"
The description is 2,053 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "...19ae16886f5321840808584"}, "service": "x402_chain_reads_v1.eth_getblockbynumber"}"
The description is 2,997 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "..._by": "model"}, "service": "x402_eth_token_verdict_v1.eth_mainnet_token_verdict"}"
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
50 tools
Changes things 3Claude Code: ask
x402_bazaar_token_verdict_v2__base_token_verdict_v3Check this CA: Base ERC-20 verdict of a token contract address.2 findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The description contains a 42-character base64 string.
What this check looks forMatched text
description: "...e keys.", "token": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", "written_by": "te..."
- Info
The description is 2,620 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "...y": "template"}, "service": "x402_bazaar_token_verdict_v2.base_token_verdict_v3"}"
Description, as the server wrote it Check this CA: Base ERC-20 verdict of a token contract address. Not financial advice. Returns: an AI-written token verdict on one token contract: grade (BASED/MID/COOKED/RADIOACTIVE, a stated rule over the contract's own state), a one-liner and a roast, and the facts read: code size, name, symbol, decimals, supply, owner(), proxy slots; plus the deepest Uniswap V3 pool's USD price and depth. No holders, no safety or legitimacy call. GET https://api.arysphere.com/v1/ventures/x402_bazaar_token_verdict_v2/base_token_verdict_v3. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"]. Measured output: {"cached": false, "chain": "base", "disclaimer": "Entertainment, not financial advice. Reads the contract and its deepest Uniswap V3 pool (spot price, quote-side depth): not holders, locks or future price.", "grade": "COOKED", "method": "verdict", "ok": true, "result": {"disclaimer": "Entertainment, not financial advice. Reads the contract and its deepest Uniswap V3 pool (spot price, quote-side depth): not holders, locks or future price.", "facts": {"decimals": 6, "erc20_shaped": true, "is_contract": true, "name": "USD Coin", "owner": "0x3abd6f64a422225e61e435bae41db12096106df7", "owner_renounced": false, "proxy_slot": "zeppelinos", "symbol": "USDC", "upgradeable_proxy": true}, "grade": "COOKED", "grade_rule": "RADIOACTIVE: not a contract, or not ERC-20 shaped (no decimals/totalSupply). COOKED: a proxy implementation slot is set (EIP-1967, its beacon, or ZeppelinOS) AND owner() names a live owner. MID: either one. BASED: neither found.", "market": {"deepest_pool": {"fee": 3000, "pool": "0x6c561b446416e1a00e8e93e221854d6ea4171372", "price_usd": 1.00209, "quote": "WETH", "quote_reserve_usd": 87721037.3, "token_reserve": 58770808.350535}, "depth_rule": "pool_depth from the deepest pool's quote-side reserve in USD: <$1k none_or_dust, <$100k thin, <$5M moderate, else deep. A description of on-chain state, not advice.", "dex": "uniswap_v3", "eth_usd": 2432.8015, "eth_usd_source": "chainlink ETH/USD 0x71041dddad3595f9ced3dccfbe3d1f4b0a16bb70", "fee_tiers": [500, 3000, 10000], "pool_depth": "deep", "pools_found": 3, "price_usd": 1.00209, "quote_assets": ["WETH", "USDC"], "quote_reserve_usd": 87721037.3, "rpc_calls": 2}, "one_liner": "USDC is COOKED", "roast": "USDC: COOKED. Proxy (zeppelinos slot set); a live owner holds the keys.", "token": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", "written_by": "template"}, "service": "x402_bazaar_token_verdict_v2.base_token_verdict_v3"}
Annotations the server declares
- readOnlyHint: true
x402_eth_token_verdict_v1__eth_mainnet_token_verdictCheck this CA: Ethereum mainnet ERC-20 verdict of a token contract address.3 findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The description contains a 42-character base64 string.
What this check looks forMatched text
description: "...acts": {"address": "0xdAC17F958D2ee523a2206206994597C13D831ec7", "code_bytes": 110..."
- Warn
The description contains a 42-character base64 string.
What this check looks forMatched text
description: "...out it.", "token": "0xdAC17F958D2ee523a2206206994597C13D831ec7", "written_by": "mo..."
- Info
The description is 2,997 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "..._by": "model"}, "service": "x402_eth_token_verdict_v1.eth_mainnet_token_verdict"}"
Description, as the server wrote it Check this CA: Ethereum mainnet ERC-20 verdict of a token contract address. Not financial advice. Returns: an AI-written token verdict on one token contract: grade (BASED/MID/COOKED/RADIOACTIVE, a stated rule over the contract's own state), a one-liner and a roast, and the facts read: code size, name, symbol, decimals, supply, owner(), proxy slots; plus the deepest Uniswap V3 pool's USD price and depth. No holders, no safety or legitimacy call. GET https://api.arysphere.com/v1/ventures/x402_eth_token_verdict_v1/eth_mainnet_token_verdict. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"]. Measured output: {"cached": false, "chain": "ethereum", "disclaimer": "Entertainment, not financial advice. Reads the contract and its deepest Uniswap V3 pool (spot price, quote-side depth): not holders, locks or future price.", "grade": "MID", "method": "verdict", "ok": true, "result": {"disclaimer": "Entertainment, not financial advice. Reads the contract and its deepest Uniswap V3 pool (spot price, quote-side depth): not holders, locks or future price.", "facts": {"address": "0xdAC17F958D2ee523a2206206994597C13D831ec7", "code_bytes": 11075, "decimals": 6, "erc20_shaped": true, "is_contract": true, "name": "Tether USD", "owner": "0xc6cde7c39eb2f0f0095f41570af89efc2c1ea828", "owner_function": true, "owner_renounced": false, "proxy_implementation": null, "proxy_slot": null, "proxy_slots_checked": ["eip1967", "eip1967_beacon"], "symbol": "USDT", "total_supply": "88302633055.702652", "total_supply_raw": "88302633055702652", "upgradeable_proxy": false}, "grade": "MID", "grade_rule": "RADIOACTIVE: not a contract, or not ERC-20 shaped (no decimals/totalSupply). COOKED: a proxy implementation slot is set (EIP-1967, its beacon, or ZeppelinOS) AND owner() names a live owner. MID: either one. BASED: neither found.", "market": {"deepest_pool": {"fee": 3000, "pool": "0x4e68ccd3e89f51c3074ca5072bbac773960dfa36", "price_usd": 1.00052, "quote": "WETH", "quote_reserve_usd": 67298314.08, "token_reserve": 28892113.616802}, "depth_rule": "pool_depth from the deepest pool's quote-side reserve in USD: <$1k none_or_dust, <$100k thin, <$5M moderate, else deep. A description of on-chain state, not advice.", "dex": "uniswap_v3", "eth_usd": 2431.49722133, "eth_usd_source": "chainlink ETH/USD 0x5f4ec3df9cbd43714fe2740f5e3616155c5b8419", "fee_tiers": [500, 3000], "pool_depth": "deep", "pools_found": 6, "price_usd": 1.00052, "quote_assets": ["WETH", "USDC"], "quote_reserve_usd": 67298314.08, "rpc_calls": 2}, "one_liner": "USDT: Six decimals, one owner, zero drama.", "roast": "A textbook ERC-20 with a live owner and no proxy tricks. It's the vanilla ice cream of tokens\u2014technically fine, but nobody's writing home about it.", "token": "0xdAC17F958D2ee523a2206206994597C13D831ec7", "written_by": "model"}, "service": "x402_eth_token_verdict_v1.eth_mainnet_token_verdict"}
Annotations the server declares
- readOnlyHint: true
x402_eth_token_verdict_v1__eth_token_verdict_v3Check this CA: Ethereum mainnet ERC-20 verdict of a token contract address.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Check this CA: Ethereum mainnet ERC-20 verdict of a token contract address. Not financial advice. Returns: an AI-written token verdict on one token contract: grade (BASED/MID/COOKED/RADIOACTIVE, a stated rule over the contract's own state), a one-liner and a roast, and the facts read: code size, name, symbol, decimals, supply, owner(), proxy slots; plus the deepest Uniswap V3 pool's USD price and depth. No holders, no safety or legitimacy call. GET https://api.arysphere.com/v1/ventures/x402_eth_token_verdict_v1/eth_token_verdict_v3. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"].
Annotations the server declares
- readOnlyHint: true
Only reads 47Claude Code: allow
x402_chain_reads_v1__base_contract_abiBase contract ABI (ERC-20 / ERC-721 and others) from a contract address.3 findings
Why it is in this group
- The name "x402_chain_reads_v1__base_contract_abi" says "read": a word for reading.
Findings
- Warn
The description contains a 42-character base64 string.
What this check looks forMatched text
description: "...}, ""], "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", "implementation":..."
- Warn
The description contains a 42-character base64 string.
What this check looks forMatched text
description: "..."implementation": "0x2Ce6311ddAE708829bc0784C967b7d77D19FD779", "isProxy": true,..."
- Warn
The description contains a 42-character base64 string.
What this check looks forMatched text
description: "...ons": [{"address": "0x2Ce6311ddAE708829bc0784C967b7d77D19FD779", "name": "FiatToke..."
Description, as the server wrote it Base contract ABI (ERC-20 / ERC-721 and others) from a contract address. Returns the ABI of a contract on Base from its address. GET https://api.arysphere.com/v1/ventures/x402_chain_reads_v1/base_contract_abi. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"]. Measured output: {"chain": "base", "method": "abi", "ok": true, "result": {"abi": [{"inputs": [{"internalType": "address", "name": "implementationContract", "type": "address"}], "stateMutability": "nonpayable", "type": "constructor"}, {"anonymous": false, "inputs": [{"indexed": false, "internalType": "address", "name": "previousAdmin", "type": "address"}, {"indexed": false, "internalType": "address", "name": "newAdmin", "type": "address"}], "name": "AdminChanged", "type": "event"}, ""], "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", "implementation": "0x2Ce6311ddAE708829bc0784C967b7d77D19FD779", "isProxy": true, "match": "exact_match", "proxy": {"implementations": [{"address": "0x2Ce6311ddAE708829bc0784C967b7d77D19FD779", "name": "FiatTokenV2_2"}], "isProxy": true, "proxyType": "ZeppelinOSProxy"}, "verified": true}, "service": "x402_chain_reads_v1.base_contract_abi"}
Annotations the server declares
- readOnlyHint: true
x402_chain_reads_v1__base_erc20_balanceofBase ERC-20 token balance of a holder address.No findings
Why it is in this group
- The name "x402_chain_reads_v1__base_erc20_balanceof" says "read": a word for reading.
Description, as the server wrote it Base ERC-20 token balance of a holder address. ERC-20 balance read on Base: takes token (ERC-20 contract, 0x + 40 hex) and address (holder, 0x + 40 hex) and returns that holder's balanceOf as read from the token contract. GET https://api.arysphere.com/v1/ventures/x402_chain_reads_v1/base_erc20_balanceof. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"]. Measured output: {"chain": "base", "method": "balanceOf", "ok": true, "result": "70000", "service": "x402_chain_reads_v1.base_erc20_balanceof"}
Annotations the server declares
- readOnlyHint: true
x402_chain_reads_v1__base_erc721_ownerofBase NFT (ERC-721) owner of a token id.No findings
Why it is in this group
- The name "x402_chain_reads_v1__base_erc721_ownerof" says "read": a word for reading.
Description, as the server wrote it Base NFT (ERC-721) owner of a token id. NFT owner read on Base: takes token (ERC-721 contract, 0x + 40 hex) and id (decimal token id) and returns the address that ownerOf(id) reports on the contract. GET https://api.arysphere.com/v1/ventures/x402_chain_reads_v1/base_erc721_ownerof. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"]. Measured output: {"chain": "base", "method": "ownerOf", "ok": true, "result": {"id": "5256424", "owner": "0x456979e89917f4dc1e86662fcdfd4c9766c6684d", "token": "0xa990c6a764b73bf43cee5bb40339c3322fb9d55f"}, "service": "x402_chain_reads_v1.base_erc721_ownerof"}
Annotations the server declares
- readOnlyHint: true
x402_chain_reads_v1__base_eth_getbalanceBase on-chain read: the native balance of an address.No findings
Why it is in this group
- The name "x402_chain_reads_v1__base_eth_getbalance" says "read": a word for reading.
Description, as the server wrote it Base on-chain read: the native balance of an address. Returns the native ETH balance of a Base address via eth_getBalance. Takes one query parameter: address (0x + 40 hex). GET https://api.arysphere.com/v1/ventures/x402_chain_reads_v1/base_eth_getbalance. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"]. Measured output: {"chain": "base", "hex": "0x0", "method": "eth_getBalance", "ok": true, "result": 0, "service": "x402_chain_reads_v1.base_eth_getbalance"}
Annotations the server declares
- readOnlyHint: true
x402_chain_reads_v1__base_eth_getblockbynumberBase on-chain read: a block by number or 'latest'.1 finding
Why it is in this group
- The name "x402_chain_reads_v1__base_eth_getblockbynumber" says "read": a word for reading.
Findings
- Info
The description is 2,233 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "...fbfa883441b76ed426"}, "service": "x402_chain_reads_v1.base_eth_getblockbynumber"}"
Description, as the server wrote it Base on-chain read: a block by number or 'latest'. Returns Base block information for query parameter block (block number or latest) via eth_getBlockByNumber. GET https://api.arysphere.com/v1/ventures/x402_chain_reads_v1/base_eth_getblockbynumber. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"]. Measured output: {"chain": "base", "method": "eth_getBlockByNumber", "ok": true, "result": {"baseFeePerGas": "0x4c4b40", "blobGasUsed": "0x49fdb0", "difficulty": "0x0", "excessBlobGas": "0x0", "extraData": "0x01000000640000000500000000004c4b40", "gasLimit": "0x17d78400", "gasUsed": "0x20543ad", "hash": "0xea00d8455c460589a746efd2ddb95112df516d68f47f41c7247249b5519397d6", "logsBloom": "0x5ec0c56035693ee7c0495a12f60bfbb6b73dd4f1a02ea3711ae4529f3852ed90b33e8b48b46627a63646c0dfe0ceff9d4a3bbec7dd25e362afc19ee3edb7b708a641fed8847ba50edb87d43dd2a852b4d9430c075a6d1af815d3a39cdf7eff42bae2a0aadaab0cee3f66c9750d872e88c123401219742e", "miner": "0x4200000000000000000000000000000000000011", "mixHash": "0x1107a40b1f89981b57fd6f8e24717d0e76cf87525d041987514d3c139405a90f", "nonce": "0x0000000000000000", "number": "0x3245954", "parentBeaconBlockRoot": "0x62515d9866021870f7635c4a8e0ac37fb94e5ac70133aa8a0946a19ba7349239", "parentHash": "0x1fd770bbc4aa41d486f43084897347279410637eb3233f2afa7c6eb4994c0655", "receiptsRoot": "0xdd340ae2e87543370b59c54eb67043fd0108ed319fef18f5357fee05a3d2e12d", "requestsHash": "0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "size": "0x14e2f", "stateRoot": "0xe0df8779fdd9e7b3b0ebb0bf73314f53a093f0812eabfd8420d6537c9b5de8b4", "timestamp": "0x6ad30f8b", "transactions": ["0xd0050c0481165f1b64e8be794aa79b503ba7718d10087982ccf6283477d54d66", "0x30a89c4cf89346243822f98da080791feaf5b2b3e1128e530018a6060071ca53"], "transactionsRoot": "0xf59afdfe8e069e8e60a09c3069da7017829938e90e6cf8bf785bf33b9248fee5", "uncles": [], "withdrawals": [], "withdrawalsRoot": "0xbb0b3c9c1132167b3257e9f50c915d664fce551810ebb0fbfa883441b76ed426"}, "service": "x402_chain_reads_v1.base_eth_getblockbynumber"}
Annotations the server declares
- readOnlyHint: true
x402_chain_reads_v1__base_eth_getlogsBase on-chain read: a contract's event logs, filtered by topic and block range.No findings
Why it is in this group
- The name "x402_chain_reads_v1__base_eth_getlogs" says "read": a word for reading.
Description, as the server wrote it Base on-chain read: a contract's event logs, filtered by topic and block range. Event logs on Base: takes address (contract, 0x + 40 hex), optional topic0 (event signature hash, 0x + 64 hex) and optional blocks (last N blocks, 1-100, default 10), and returns the matching eth_getLogs entries. GET https://api.arysphere.com/v1/ventures/x402_chain_reads_v1/base_eth_getlogs. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"]. Measured output: {"chain": "base", "method": "eth_getLogs", "ok": true, "result": {"count": 205, "from_block": 52384927, "logs": [{"address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", "blockHash": "0x070a9affe2a28d7cf48692cf3b39420a699e6e2c5549fcd351143931a329400f", "blockNumber": "0x31f549f", "blockTimestamp": "0x6ac90621", "data": "0x000000000000000000000000000000000000000000000000000000046059f24b", "logIndex": "0x0", "removed": false, "topics": ["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", "0x000000000000000000000000b2cc224c1c9fee385f8ad6a55b4d94e92359dc59", ""], "transactionHash": "0xd6acc3445213c7bb13fafe113c818965d71567c3a8d0defdba730577e0f4c85d", "transactionIndex": "0x1"}, {"address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", "blockHash": "0x070a9affe2a28d7cf48692cf3b39420a699e6e2c5549fcd351143931a329400f", "blockNumber": "0x31f549f", "blockTimestamp": "0x6ac90621", "data": "0x00000000000000000000000000000000000000000000000000000001b91d1bf1", "logIndex": "0x3", "removed": false, "topics": ["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", "0x000000000000000000000000160d7e9d948b16c163332a277b393c288408eb12", ""], "transactionHash": "0x871c536d6987ca7ac859231108c11b5604874b55a50b9ed063bc55d1add86142", "transactionIndex": "0x3"}, ""], "to_block": 52384927, "truncated": true}, "service": "x402_chain_reads_v1.base_eth_getlogs"}
Annotations the server declares
- readOnlyHint: true
x402_chain_reads_v1__base_eth_gettransactionbyhashBase on-chain read: a transaction by its hash.No findings
Why it is in this group
- The name "x402_chain_reads_v1__base_eth_gettransactionbyhash" says "read": a word for reading.
Description, as the server wrote it Base on-chain read: a transaction by its hash. Base eth_getTransactionByHash. Takes hash (transaction hash, 0x + 64 hex) and returns that Base transaction as the node returns it: from, to, value, gas, gas price, input, nonce, block number and transaction index, or null if the node does not know the hash. GET https://api.arysphere.com/v1/ventures/x402_chain_reads_v1/base_eth_gettransactionbyhash. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"]. Measured output: {"chain": "base", "method": "eth_getTransactionByHash", "ok": true, "result": {"blockHash": "0xae1326b8087866a6df875ef2388f57a91a16fccc5714e9fa5d66425f7677e7b3", "blockNumber": "0x18f1bb8", "blockTimestamp": "0x67a89453", "depositReceiptVersion": "0x1", "from": "0xdeaddeaddeaddeaddeaddeaddeaddeaddead0001", "gas": "0xf4240", "gasPrice": "0x0", "hash": "0x6ec0cc1f3124bc3b7f1f070d7c73d9ddb8104f79e2602d8cac4dbaa5f4c68ea9", "input": "0x440a5e20000008dd00101c1200000000000000010000000067a893a300000000014cc642000000000000000000000000000000000000000000000000000000002ef4ebe10000000000000000000000000000000000000000000000000000000000000002b33f335e3b4b340df7b2a9c0ac482043223a17", "mint": "0x0", "nonce": "0x18f1bb9", "r": "0x0", "s": "0x0", "sourceHash": "0x41af957a0405b7d317013d73271f2f39554782d4967d4ec6fd39a34fd5ba42bb", "to": "0x4200000000000000000000000000000000000015", "transactionIndex": "0x0", "type": "0x7e", "v": "0x0", "value": "0x0", "yParity": "0x0"}, "service": "x402_chain_reads_v1.base_eth_gettransactionbyhash"}
Annotations the server declares
- readOnlyHint: true
x402_chain_reads_v1__base_reads_bundleBase bundle: several reads in one paid call.No findings
Why it is in this group
- The name "x402_chain_reads_v1__base_reads_bundle" says "read": a word for reading.
Description, as the server wrote it Base bundle: several reads in one paid call. Returns base_eth_getbalance and network_info_summary results in one paid call, keyed by part name. Returns: each named part service's own result, in one paid call, keyed by the part's name -- exactly what each part returns when bought alone; the call succeeds only when every part answers. It takes the union of the parts' query parameters. GET https://api.arysphere.com/v1/ventures/x402_chain_reads_v1/base_reads_bundle. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"].
Annotations the server declares
- readOnlyHint: true
x402_chain_reads_v1__base_token_verdict_readCheck this CA: Base ERC-20 verdict of a token contract address.2 findings
Why it is in this group
- The name "x402_chain_reads_v1__base_token_verdict_read" says "read": a word for reading.
Findings
- Warn
The description contains a 42-character base64 string.
What this check looks forMatched text
description: "...e keys.", "token": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", "written_by": "te..."
- Info
The description is 2,613 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "...y": "template"}, "service": "x402_bazaar_token_verdict_v2.base_token_verdict_v3"}"
Description, as the server wrote it Check this CA: Base ERC-20 verdict of a token contract address. Not financial advice. Returns: an AI-written token verdict on one token contract: grade (BASED/MID/COOKED/RADIOACTIVE, a stated rule over the contract's own state), a one-liner and a roast, and the facts read: code size, name, symbol, decimals, supply, owner(), proxy slots; plus the deepest Uniswap V3 pool's USD price and depth. No holders, no safety or legitimacy call. GET https://api.arysphere.com/v1/ventures/x402_chain_reads_v1/base_token_verdict_read. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"]. Measured output: {"cached": false, "chain": "base", "disclaimer": "Entertainment, not financial advice. Reads the contract and its deepest Uniswap V3 pool (spot price, quote-side depth): not holders, locks or future price.", "grade": "COOKED", "method": "verdict", "ok": true, "result": {"disclaimer": "Entertainment, not financial advice. Reads the contract and its deepest Uniswap V3 pool (spot price, quote-side depth): not holders, locks or future price.", "facts": {"decimals": 6, "erc20_shaped": true, "is_contract": true, "name": "USD Coin", "owner": "0x3abd6f64a422225e61e435bae41db12096106df7", "owner_renounced": false, "proxy_slot": "zeppelinos", "symbol": "USDC", "upgradeable_proxy": true}, "grade": "COOKED", "grade_rule": "RADIOACTIVE: not a contract, or not ERC-20 shaped (no decimals/totalSupply). COOKED: a proxy implementation slot is set (EIP-1967, its beacon, or ZeppelinOS) AND owner() names a live owner. MID: either one. BASED: neither found.", "market": {"deepest_pool": {"fee": 3000, "pool": "0x6c561b446416e1a00e8e93e221854d6ea4171372", "price_usd": 1.00209, "quote": "WETH", "quote_reserve_usd": 87721037.3, "token_reserve": 58770808.350535}, "depth_rule": "pool_depth from the deepest pool's quote-side reserve in USD: <$1k none_or_dust, <$100k thin, <$5M moderate, else deep. A description of on-chain state, not advice.", "dex": "uniswap_v3", "eth_usd": 2432.8015, "eth_usd_source": "chainlink ETH/USD 0x71041dddad3595f9ced3dccfbe3d1f4b0a16bb70", "fee_tiers": [500, 3000, 10000], "pool_depth": "deep", "pools_found": 3, "price_usd": 1.00209, "quote_assets": ["WETH", "USDC"], "quote_reserve_usd": 87721037.3, "rpc_calls": 2}, "one_liner": "USDC is COOKED", "roast": "USDC: COOKED. Proxy (zeppelinos slot set); a live owner holds the keys.", "token": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", "written_by": "template"}, "service": "x402_bazaar_token_verdict_v2.base_token_verdict_v3"}
Annotations the server declares
- readOnlyHint: true
x402_chain_reads_v1__base_tx_explainExplain this tx: Base transaction decoded -- status, transfers, swaps, approvals, USD value.1 finding
Why it is in this group
- The name "x402_chain_reads_v1__base_tx_explain" says "read": a word for reading.
Findings
- Info
The description is 2,497 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "..."value_usd": 0.0, "wraps": []}, "service": "x402_chain_reads_v1.base_tx_explain"}"
Description, as the server wrote it Explain this tx: Base transaction decoded -- status, transfers, swaps, approvals, USD value. Returns: a decoded transaction: status (pending, confirmed, reverted or not_found), block, from and to, value and fee in ETH and USD (Chainlink ETH/USD), and its decoded logs -- ERC-20 and ERC-721 transfers with symbol, amount and USD where priced, approvals (unlimited flagged), WETH wraps and DEX swap events -- plus a one-line summary. Deterministic decoding of the receipt, no model; a mined answer is c GET https://api.arysphere.com/v1/ventures/x402_chain_reads_v1/base_tx_explain. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"]. Measured output: {"cached": false, "chain": "base", "method": "explain", "ok": true, "result": {"approvals": [{"amount": "164.78", "owner": "0x8ea5ad2a58c1dae75394b1e8636e6518eb6dac50", "spender": "0x698cb2b6dd822994581fea6ea4fc755d1363a92f", "symbol": "USDC", "token": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", "unlimited": false}], "block": 52718625, "contract_created": null, "eth_usd": 2430.46003758, "eth_usd_source": "chainlink ETH/USD 0x71041dddad3595f9ced3dccfbe3d1f4b0a16bb70", "fee_eth": "0.000003059537476466", "fee_usd": 0.0074, "from": "0x2c2e035d20cd6da1664a7cf0eaf98e3647607304", "hash": "0x7250ea109382c1c23d3209c766f8a04ca749c17cf9f2ebc2963ac19b56e9966c", "logs_total": 5, "method_selector": "0x708909ad", "nft_transfers": [], "other_logs": 1, "rpc_calls": 5, "status": "confirmed", "summary": "Confirmed in block 52718625; moved 4194.908918312848701351 RECALL, 164.78 USDC; 1 swap(s); 1 approval(s); fee $0.0074.", "swaps": [{"dex": "uniswap_v3_shape", "pool": "0x0abe41c8aaa9282429e06ebed48be36298981d94"}], "to": "0x8ea5ad2a58c1dae75394b1e8636e6518eb6dac50", "transfers": [{"amount": "4194.908918312848701351", "from": "0x0abe41c8aaa9282429e06ebed48be36298981d94", "symbol": "RECALL", "to": "0x8ea5ad2a58c1dae75394b1e8636e6518eb6dac50", "token": "0x1f16e03c1a5908818f47f6ee7bb16690b40d0671", "usd": 162.62, "usd_basis": "uniswap v3 deepest-pool spot"}, {"amount": "164.78", "from": "0x8ea5ad2a58c1dae75394b1e8636e6518eb6dac50", "symbol": "USDC", "to": "0x0abe41c8aaa9282429e06ebed48be36298981d94", "token": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", "usd": 164.78, "usd_basis": "dollar stablecoin"}], "truncated": false, "value_eth": "0", "value_usd": 0.0, "wraps": []}, "service": "x402_chain_reads_v1.base_tx_explain"}
Annotations the server declares
- readOnlyHint: true
x402_chain_reads_v1__base_tx_verdict_bundleBase bundle: several reads in one paid call.No findings
Why it is in this group
- The name "x402_chain_reads_v1__base_tx_verdict_bundle" says "read": a word for reading.
Description, as the server wrote it Base bundle: several reads in one paid call. Returns: each named part service's own result, in one paid call, keyed by the part's name -- exactly what each part returns when bought alone; the call succeeds only when every part answers. It takes the union of the parts' query parameters. GET https://api.arysphere.com/v1/ventures/x402_chain_reads_v1/base_tx_verdict_bundle. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"].
Annotations the server declares
- readOnlyHint: true
x402_chain_reads_v1__base_verdict_wallet_snapshot_bundleBase bundle: several reads in one paid call.No findings
Why it is in this group
- The name "x402_chain_reads_v1__base_verdict_wallet_snapshot_bundle" says "read": a word for reading.
Description, as the server wrote it Base bundle: several reads in one paid call. One paid call on Base that returns two results: the token verdict for a Base ERC-20 contract, and a Base wallet snapshot (native balance, nonce, contract or not, ten major token balances with USD). Returns: each named part service's own result, in one paid call, keyed by the part's name -- exactly what each part returns when bought alone; the call succeeds only when every part answers. It takes the union of the parts' query parameters. GET https://api.arysphere.com/v1/ventures/x402_chain_reads_v1/base_verdict_wallet_snapshot_bundle. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"].
Annotations the server declares
- readOnlyHint: true
x402_chain_reads_v1__base_wallet_snapshotCheck this wallet: Base ETH and top-10 token balances, nonce, contract flag, USD totals.1 finding
Why it is in this group
- The name "x402_chain_reads_v1__base_wallet_snapshot" says "read": a word for reading.
Findings
- Warn
The description contains a 42-character base64 string.
What this check looks forMatched text
description: "...sult": {"address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", "age_secs": 0, "c..."
Description, as the server wrote it Check this wallet: Base ETH and top-10 token balances, nonce, contract flag, USD totals. Returns: a wallet snapshot on Base: the native ETH balance, nonce, whether the address is a contract, and its balances of ten major Base tokens (WETH, USDC, USDbC, DAI, cbETH, wstETH, cbBTC, AERO, VIRTUAL, DEGEN), with USD for ETH, WETH and dollar stablecoins. One batched read, cached 60 seconds; no other tokens, no labels. GET https://api.arysphere.com/v1/ventures/x402_chain_reads_v1/base_wallet_snapshot. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"]. Measured output: {"cached": false, "chain": "base", "method": "snapshot", "ok": true, "result": {"address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", "age_secs": 0, "chain": "base", "code_bytes": 23, "eth_usd": 2430.46003758, "eth_usd_source": "chainlink ETH/USD 0x71041dddad3595f9ced3dccfbe3d1f4b0a16bb70", "is_contract": true, "native": {"amount": "3.12882180347273728", "symbol": "ETH", "usd": 7604.48}, "nonce": 70, "rpc_calls": 3, "tokens": [{"amount": "0.222512739074208417", "symbol": "WETH", "token": "0x4200000000000000000000000000000000000006", "usd": 540.81, "usd_basis": "chainlink ETH/USD"}, {"amount": "45.145979", "symbol": "USDC", "token": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", "usd": 45.15, "usd_basis": "dollar stablecoin"}], "tokens_checked": ["WETH", "USDC"], "usd_total_complete": false, "usd_total_priced": 8199.06}, "service": "x402_chain_reads_v1.base_wallet_snapshot"}
Annotations the server declares
- readOnlyHint: true
x402_chain_reads_v1__chain_fees_digestGnosis Chain network data in one call.No findings
Why it is in this group
- The name "x402_chain_reads_v1__chain_fees_digest" says "read": a word for reading.
Description, as the server wrote it Gnosis Chain network data in one call. GET https://api.arysphere.com/v1/ventures/x402_chain_reads_v1/chain_fees_digest. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"]. Measured output: {"chain": "gnosis", "hex": {"eth_blockNumber": "0x2e89bed", "eth_chainId": "0x64", "eth_gasPrice": "0xb"}, "method": "summary", "ok": true, "result": {"base_fee_per_gas_wei": 10, "block_gas_limit": 17000000, "block_gas_used": 4089082, "block_number": 48798701, "block_timestamp": 1792216970, "block_transactions": 21, "chain_id": 100, "gas_price_wei": 11}, "service": "x402_chain_reads_v1.chain_fees_digest"}
Annotations the server declares
- readOnlyHint: true
x402_chain_reads_v1__eth_balance_verdict_bundleEthereum mainnet bundle: several reads in one paid call.No findings
Why it is in this group
- The name "x402_chain_reads_v1__eth_balance_verdict_bundle" says "read": a word for reading.
Description, as the server wrote it Ethereum mainnet bundle: several reads in one paid call. Returns: each named part service's own result, in one paid call, keyed by the part's name -- exactly what each part returns when bought alone; the call succeeds only when every part answers. It takes the union of the parts' query parameters. GET https://api.arysphere.com/v1/ventures/x402_chain_reads_v1/eth_balance_verdict_bundle. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"].
Annotations the server declares
- readOnlyHint: true
x402_chain_reads_v1__eth_chainidEthereum mainnet on-chain read: the chain id the node reports.No findings
Why it is in this group
- The name "x402_chain_reads_v1__eth_chainid" says "read": a word for reading.
Description, as the server wrote it Ethereum mainnet on-chain read: the chain id the node reports. Ethereum mainnet eth_chainId: takes no query parameters and returns the chain id the node reports. GET https://api.arysphere.com/v1/ventures/x402_chain_reads_v1/eth_chainid. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"]. Measured output: {"chain": "ethereum", "hex": "0x1", "method": "eth_chainId", "ok": true, "result": 1, "service": "x402_chain_reads_v1.eth_chainid"}
Annotations the server declares
- readOnlyHint: true
x402_chain_reads_v1__eth_ens_resolveENS resolver on Ethereum mainnet: pass name (an ASCII .eth name, e.g.No findings
Why it is in this group
- The name "x402_chain_reads_v1__eth_ens_resolve" says "read": a word for reading.
Description, as the server wrote it ENS resolver on Ethereum mainnet: pass name (an ASCII .eth name, e.g. vitalik.eth) to get its address, or pass address (0x + 40 hex) to get its verified primary ENS name. One paid call, USDC on Base. GET https://api.arysphere.com/v1/ventures/x402_chain_reads_v1/eth_ens_resolve. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"].
Annotations the server declares
- readOnlyHint: true
x402_chain_reads_v1__eth_erc20_allowanceEthereum mainnet ERC-20 allowance a holder granted a spender.No findings
Why it is in this group
- The name "x402_chain_reads_v1__eth_erc20_allowance" says "read": a word for reading.
Description, as the server wrote it Ethereum mainnet ERC-20 allowance a holder granted a spender. Ethereum mainnet ERC-20 allowance: how much spender may move of owner token balance. Takes token (ERC-20 contract), owner and spender addresses; returns the allowance read live from the contract. GET https://api.arysphere.com/v1/ventures/x402_chain_reads_v1/eth_erc20_allowance. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"].
Annotations the server declares
- readOnlyHint: true
x402_chain_reads_v1__eth_erc20_balanceofEthereum mainnet ERC-20 token balance of a holder address.No findings
Why it is in this group
- The name "x402_chain_reads_v1__eth_erc20_balanceof" says "read": a word for reading.
Description, as the server wrote it Ethereum mainnet ERC-20 token balance of a holder address. Ethereum mainnet ERC-20 token balance: give token (the ERC-20 contract) and address (the holder); returns that address balance of the token, read live with balanceOf. GET https://api.arysphere.com/v1/ventures/x402_chain_reads_v1/eth_erc20_balanceof. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"].
Annotations the server declares
- readOnlyHint: true
x402_chain_reads_v1__eth_erc721_tokensofEthereum mainnet NFT (ERC-721) owner of a token id.No findings
Why it is in this group
- The name "x402_chain_reads_v1__eth_erc721_tokensof" says "read": a word for reading.
Description, as the server wrote it Ethereum mainnet NFT (ERC-721) owner of a token id. Ethereum NFT holdings: the token IDs a wallet owns in one ERC-721 Enumerable collection on Ethereum mainnet. Takes token (the ERC-721 collection contract) and owner (the wallet address). Pay $0.005 in USDC on Base per call. GET https://api.arysphere.com/v1/ventures/x402_chain_reads_v1/eth_erc721_tokensof. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"].
Annotations the server declares
- readOnlyHint: true
x402_chain_reads_v1__eth_getbalanceEthereum mainnet on-chain read: the native balance of an address.No findings
Why it is in this group
- The name "x402_chain_reads_v1__eth_getbalance" says "read": a word for reading.
Description, as the server wrote it Ethereum mainnet on-chain read: the native balance of an address. Ethereum mainnet ETH balance of one address: eth_getBalance at the latest block, in wei. Takes address (0x + 40 hex). One plain JSON-RPC read, paid per call in USDC on Base. GET https://api.arysphere.com/v1/ventures/x402_chain_reads_v1/eth_getbalance. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"].
Annotations the server declares
- readOnlyHint: true
x402_chain_reads_v1__eth_getblockbynumberEthereum mainnet on-chain read: a block by number or 'latest'.1 finding
Why it is in this group
- The name "x402_chain_reads_v1__eth_getblockbynumber" says "read": a word for reading.
Findings
- Info
The description is 2,111 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "...19ae16886f5321840808584"}, "service": "x402_chain_reads_v1.eth_getblockbynumber"}"
Description, as the server wrote it Ethereum mainnet on-chain read: a block by number or 'latest'. Ethereum mainnet eth_getBlockByNumber: takes `block` (a block number, or 'latest') and returns that block exactly as the node gives it. GET https://api.arysphere.com/v1/ventures/x402_chain_reads_v1/eth_getblockbynumber. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"]. Measured output: {"chain": "ethereum", "method": "eth_getBlockByNumber", "ok": true, "result": {"baseFeePerGas": "0x206e2cc9", "blobGasUsed": "0x140000", "difficulty": "0x0", "excessBlobGas": "0xc0db577", "extraData": "0x546974616e2028746974616e6275696c6465722e78797a29", "gasLimit": "0x3938700", "gasUsed": "0x169e64a", "hash": "0x7538fe3a3bb34856c428edf3a6987a3f65c62e420473a509e0ef6e6446aac74b", "logsBloom": "0x51ef0f6b5db85bb77c3f1b4de1e5dfafd5fedf65f45c753c161735b56e9beff5dc2cc73aa3bc2fafb97e7b917abf7dddc76b513d9f67ef73dfff2ff2bfefe4db7379d7e11ef186fae93b772fb47b47ffeee47771edfe1bba7176649acf657edef630646aa6ce2a61faf7faf32e606cc7dbffc2be70d6b6", "miner": "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97", "mixHash": "0xae6149f7ce26ec6622dcee60ac3581ec58f376c6e617344d5d26fa6c79fcd84f", "nonce": "0x0000000000000000", "number": "0x18f1ab8", "parentBeaconBlockRoot": "0x0a477cb0499fc7f2a7d288b176f58f017ce1fc816648df3df102066289a3a962", "parentHash": "0x49c6e74104654981bc3d21e12e9df6dcb4fad59c775948d9c43ecc662dbbeebe", "receiptsRoot": "0xd4d60719e4ba28f68eb398a5d861d44bfdb8a171742a756e0dbcc50250136183", "requestsHash": "0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "size": "0x1d1af", "stateRoot": "0xafc5c4791f953764c1240c4605600bffa650467910ff793a6ad44a44ec5bcdad", "timestamp": "0x6ac905e3", "transactionsRoot": "0xc00956eb9e6da8da2db4d3a68333bf790f6fb92471b67121666f3a739a0b9e6c", "uncles": [], "withdrawalsRoot": "0x58b153ac66ecab07f3a899101e5e839985a01f22419ae16886f5321840808584"}, "service": "x402_chain_reads_v1.eth_getblockbynumber"}
Annotations the server declares
- readOnlyHint: true
x402_chain_reads_v1__eth_gettransactionbyhashEthereum mainnet on-chain read: a transaction by its hash.No findings
Why it is in this group
- The name "x402_chain_reads_v1__eth_gettransactionbyhash" says "read": a word for reading.
Description, as the server wrote it Ethereum mainnet on-chain read: a transaction by its hash. Ethereum mainnet eth_getTransactionByHash: takes `hash` (transaction hash, 0x + 64 hex) and returns the transaction exactly as the node gives it, or null if the node does not know it. GET https://api.arysphere.com/v1/ventures/x402_chain_reads_v1/eth_gettransactionbyhash. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"]. Measured output: {"chain": "ethereum", "method": "eth_getTransactionByHash", "ok": true, "result": {"accessList": [], "blockHash": "0x7538fe3a3bb34856c428edf3a6987a3f65c62e420473a509e0ef6e6446aac74b", "blockNumber": "0x18f1ab8", "blockTimestamp": "0x6ac905e3", "chainId": "0x1", "from": "0xc917c3fa468f2c4b9c84c72caa46420eb9825249", "gas": "0x6e4cc", "gasPrice": "0x206e2cc9", "hash": "0xc43fe089e6e8de6c1bf47a65f74661323154af09655dbde2c7f728e768d864eb", "input": "0x09c5eabe000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002950000cca0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000001000000000000000000000000", "maxFeePerGas": "0x40f9b8b4", "maxPriorityFeePerGas": "0x0", "nonce": "0x23866", "r": "0x4ce24c0306d81eb49173e339b90025a281ccc73f1b645c955cdcaa32dfa81ab1", "s": "0x26efbc9d02b4e6d659ea3823fe3ec6ea84409edcf6b21a8737b041af3ce6308b", "to": "0x0000000aa232009084bd71a5797d089aa4edfad4", "transactionIndex": "0x0", "type": "0x2", "v": "0x0", "value": "0x0", "yParity": "0x0"}, "service": "x402_chain_reads_v1.eth_gettransactionbyhash"}
Annotations the server declares
- readOnlyHint: true
x402_chain_reads_v1__eth_mainnet_getlogsEthereum mainnet on-chain read: a contract's event logs, filtered by topic and block range.No findings
Why it is in this group
- The name "x402_chain_reads_v1__eth_mainnet_getlogs" says "read": a word for reading.
Description, as the server wrote it Ethereum mainnet on-chain read: a contract's event logs, filtered by topic and block range. Ethereum mainnet event logs for one contract over the last N blocks (1-100, default 10), optionally filtered by topic0 event signature hash. Takes address, topic0, blocks. Returns the raw eth_getLogs entries. GET https://api.arysphere.com/v1/ventures/x402_chain_reads_v1/eth_mainnet_getlogs. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"].
Annotations the server declares
- readOnlyHint: true
x402_chain_reads_v1__eth_token_verdictCheck this CA: Ethereum mainnet ERC-20 verdict of a token contract address.No findings
Why it is in this group
- The name "x402_chain_reads_v1__eth_token_verdict" says "read": a word for reading.
Description, as the server wrote it Check this CA: Ethereum mainnet ERC-20 verdict of a token contract address. Not financial advice. Returns: an AI-written token verdict on one token contract: grade (BASED/MID/COOKED/RADIOACTIVE, a stated rule over the contract's own state), a one-liner and a roast, and the facts read: code size, name, symbol, decimals, supply, owner(), proxy slots; plus the deepest Uniswap V3 pool's USD price and depth. No holders, no safety or legitimacy call. GET https://api.arysphere.com/v1/ventures/x402_chain_reads_v1/eth_token_verdict. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"].
Annotations the server declares
- readOnlyHint: true
x402_chain_reads_v1__eth_tx_explainExplain this tx: Ethereum mainnet transaction decoded -- status, transfers, swaps, approvals, USD value.1 finding
Why it is in this group
- The name "x402_chain_reads_v1__eth_tx_explain" says "read": a word for reading.
Findings
- Info
The description is 2,499 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "..."value_usd": 0.0, "wraps": []}, "service": "x402_chain_reads_v1.eth_tx_explain"}"
Description, as the server wrote it Explain this tx: Ethereum mainnet transaction decoded -- status, transfers, swaps, approvals, USD value. Returns: a decoded transaction: status (pending, confirmed, reverted or not_found), block, from and to, value and fee in ETH and USD (Chainlink ETH/USD), and its decoded logs -- ERC-20 and ERC-721 transfers with symbol, amount and USD where priced, approvals (unlimited flagged), WETH wraps and DEX swap events -- plus a one-line summary. Deterministic decoding of the receipt, no model; a mined GET https://api.arysphere.com/v1/ventures/x402_chain_reads_v1/eth_tx_explain. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"]. Measured output: {"cached": false, "chain": "ethereum", "method": "explain", "ok": true, "result": {"approvals": [{"amount": "164.78", "owner": "0x8ea5ad2a58c1dae75394b1e8636e6518eb6dac50", "spender": "0x698cb2b6dd822994581fea6ea4fc755d1363a92f", "symbol": "USDC", "token": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", "unlimited": false}], "block": 52718625, "contract_created": null, "eth_usd": 2430.46003758, "eth_usd_source": "chainlink ETH/USD 0x71041dddad3595f9ced3dccfbe3d1f4b0a16bb70", "fee_eth": "0.000003059537476466", "fee_usd": 0.0074, "from": "0x2c2e035d20cd6da1664a7cf0eaf98e3647607304", "hash": "0x7250ea109382c1c23d3209c766f8a04ca749c17cf9f2ebc2963ac19b56e9966c", "logs_total": 5, "method_selector": "0x708909ad", "nft_transfers": [], "other_logs": 1, "rpc_calls": 5, "status": "confirmed", "summary": "Confirmed in block 52718625; moved 4194.908918312848701351 RECALL, 164.78 USDC; 1 swap(s); 1 approval(s); fee $0.0074.", "swaps": [{"dex": "uniswap_v3_shape", "pool": "0x0abe41c8aaa9282429e06ebed48be36298981d94"}], "to": "0x8ea5ad2a58c1dae75394b1e8636e6518eb6dac50", "transfers": [{"amount": "4194.908918312848701351", "from": "0x0abe41c8aaa9282429e06ebed48be36298981d94", "symbol": "RECALL", "to": "0x8ea5ad2a58c1dae75394b1e8636e6518eb6dac50", "token": "0x1f16e03c1a5908818f47f6ee7bb16690b40d0671", "usd": 162.62, "usd_basis": "uniswap v3 deepest-pool spot"}, {"amount": "164.78", "from": "0x8ea5ad2a58c1dae75394b1e8636e6518eb6dac50", "symbol": "USDC", "to": "0x0abe41c8aaa9282429e06ebed48be36298981d94", "token": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", "usd": 164.78, "usd_basis": "dollar stablecoin"}], "truncated": false, "value_eth": "0", "value_usd": 0.0, "wraps": []}, "service": "x402_chain_reads_v1.eth_tx_explain"}
Annotations the server declares
- readOnlyHint: true
x402_chain_reads_v1__eth_tx_verdict_bundleEthereum mainnet bundle: several reads in one paid call.No findings
Why it is in this group
- The name "x402_chain_reads_v1__eth_tx_verdict_bundle" says "read": a word for reading.
Description, as the server wrote it Ethereum mainnet bundle: several reads in one paid call. Returns: each named part service's own result, in one paid call, keyed by the part's name -- exactly what each part returns when bought alone; the call succeeds only when every part answers. It takes the union of the parts' query parameters. GET https://api.arysphere.com/v1/ventures/x402_chain_reads_v1/eth_tx_verdict_bundle. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"].
Annotations the server declares
- readOnlyHint: true
x402_chain_reads_v1__eth_verdict_chainid_bundleEthereum mainnet bundle: several reads in one paid call.No findings
Why it is in this group
- The name "x402_chain_reads_v1__eth_verdict_chainid_bundle" says "read": a word for reading.
Description, as the server wrote it Ethereum mainnet bundle: several reads in one paid call. One paid call on Ethereum mainnet (query: token): eth_chainId plus the token verdict for one token contract, each part's own result keyed by its name. Returns: each named part service's own result, in one paid call, keyed by the part's name -- exactly what each part returns when bought alone; the call succeeds only when every part answers. It takes the union of the parts' query parameters. GET https://api.arysphere.com/v1/ventures/x402_chain_reads_v1/eth_verdict_chainid_bundle. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"].
Annotations the server declares
- readOnlyHint: true
x402_chain_reads_v1__gnosis_eth_getbalanceGnosis Chain on-chain read: the native balance of an address.No findings
Why it is in this group
- The name "x402_chain_reads_v1__gnosis_eth_getbalance" says "read": a word for reading.
Description, as the server wrote it Gnosis Chain on-chain read: the native balance of an address. Native xDAI balance of one address on Gnosis Chain at the latest block: the raw eth_getBalance result in wei (hex). Takes exactly one query parameter, address (0x + 40 hex). GET https://api.arysphere.com/v1/ventures/x402_chain_reads_v1/gnosis_eth_getbalance. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"]. Measured output: {"chain": "gnosis", "hex": "0x78de861da3c39a15", "method": "eth_getBalance", "ok": true, "result": 8709546191240796693, "service": "x402_chain_reads_v1.gnosis_eth_getbalance"}
Annotations the server declares
- readOnlyHint: true
x402_chain_reads_v1__gnosis_eth_getlogsGnosis Chain on-chain read: a contract's event logs, filtered by topic and block range.No findings
Why it is in this group
- The name "x402_chain_reads_v1__gnosis_eth_getlogs" says "read": a word for reading.
Description, as the server wrote it Gnosis Chain on-chain read: a contract's event logs, filtered by topic and block range. Returns raw event logs for one Gnosis contract via eth_getLogs. Takes address (0x+40 hex), optional topic0 (0x+64 hex), optional blocks (last N, default 10). GET https://api.arysphere.com/v1/ventures/x402_chain_reads_v1/gnosis_eth_getlogs. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"]. Measured output: {"chain": "gnosis", "method": "eth_getLogs", "ok": true, "result": {"count": 2, "from_block": 48798692, "logs": [{"address": "0xddafbb505ad214d7b80b1f830fccc89b60fb7a83", "blockHash": "0xd8f60070c47b0aebf5c1a1048e7218cba3060604c73bf6931d3c5f48e8733b5e", "blockNumber": "0x2e89bea", "blockTimestamp": "0x6ad30f7b", "data": "0x00000000000000000000000000000000000000000000000000000000002333a8", "logIndex": "0x3", "removed": false, "topics": ["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", "0x0000000000000000000000007f90122bf0700f9e7e1f688fe926940e8839f353"], "transactionHash": "0x88f237062d07deb3ac426d697631d89a86860b8aa0746822c155e7c77b8a5574", "transactionIndex": "0x0"}, {"address": "0xddafbb505ad214d7b80b1f830fccc89b60fb7a83", "blockHash": "0xd8f60070c47b0aebf5c1a1048e7218cba3060604c73bf6931d3c5f48e8733b5e", "blockNumber": "0x2e89bea", "blockTimestamp": "0x6ad30f7b", "data": "0x00000000000000000000000000000000000000000000000000000000002333a8", "logIndex": "0x6", "removed": false, "topics": ["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", "0x000000000000000000000000b45373129b4220160b92bd2320869f44d48ecd01"], "transactionHash": "0x88f237062d07deb3ac426d697631d89a86860b8aa0746822c155e7c77b8a5574", "transactionIndex": "0x0"}], "to_block": 48798701, "truncated": false}, "service": "x402_chain_reads_v1.gnosis_eth_getlogs"}
Annotations the server declares
- readOnlyHint: true
x402_chain_reads_v1__network_info_balance_bundleBase bundle: several reads in one paid call.No findings
Why it is in this group
- The name "x402_chain_reads_v1__network_info_balance_bundle" says "read": a word for reading.
Description, as the server wrote it Base bundle: several reads in one paid call. Returns network_info_summary and base_eth_getbalance in one paid call: Base chain summary plus native balance for an address. Returns: each named part service's own result, in one paid call, keyed by the part's name -- exactly what each part returns when bought alone; the call succeeds only when every part answers. It takes the union of the parts' query parameters. GET https://api.arysphere.com/v1/ventures/x402_chain_reads_v1/network_info_balance_bundle. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"].
Annotations the server declares
- readOnlyHint: true
x402_chain_reads_v1__network_info_summaryBase network data in one call.No findings
Why it is in this group
- The name "x402_chain_reads_v1__network_info_summary" says "read": a word for reading.
Description, as the server wrote it Base network data in one call. GET https://api.arysphere.com/v1/ventures/x402_chain_reads_v1/network_info_summary. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"]. Measured output: {"chain": "base", "hex": {"eth_blockNumber": "0x3245954", "eth_chainId": "0x2105", "eth_gasPrice": "0x5b8d80"}, "method": "summary", "ok": true, "result": {"base_fee_per_gas_wei": 5000000, "block_gas_limit": 400000000, "block_gas_used": 33899437, "block_number": 52713812, "block_timestamp": 1792216971, "block_transactions": 190, "chain_id": 8453, "gas_price_wei": 6000000}, "service": "x402_chain_reads_v1.network_info_summary"}
Annotations the server declares
- readOnlyHint: true
x402_eth_reads_v1__eth_mainnet_contract_abiEthereum mainnet contract ABI (ERC-20 / ERC-721 and others) from a contract address.1 finding
Why it is in this group
- The name "x402_eth_reads_v1__eth_mainnet_contract_abi" says "read": a word for reading.
Findings
- Warn
The description contains a 42-character base64 string.
What this check looks forMatched text
description: "...ion"}], "address": "0xdAC17F958D2ee523a2206206994597C13D831ec7", "implementation":..."
Description, as the server wrote it Ethereum mainnet contract ABI (ERC-20 / ERC-721 and others) from a contract address. Ethereum mainnet contract ABI. Takes query parameter address (contract, 0x + 40 hex). Returns the contract's ABI as JSON when one is available for that address. GET https://api.arysphere.com/v1/ventures/x402_eth_reads_v1/eth_mainnet_contract_abi. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"]. Measured output: {"chain": "ethereum", "method": "abi", "ok": true, "result": {"abi": [{"constant": true, "inputs": [], "name": "name", "outputs": [{"name": "", "type": "string"}], "payable": false, "stateMutability": "view", "type": "function"}, {"constant": false, "inputs": [{"name": "_upgradedAddress", "type": "address"}], "name": "deprecate", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function"}], "address": "0xdAC17F958D2ee523a2206206994597C13D831ec7", "implementation": null, "isProxy": false, "match": "match", "proxy": {"implementations": [], "isProxy": false, "proxyType": null}, "verified": true}, "service": "x402_eth_reads_v1.eth_mainnet_contract_abi"}
Annotations the server declares
- readOnlyHint: true
x402_eth_reads_v1__eth_mainnet_erc20_allowanceEthereum mainnet ERC-20 allowance a holder granted a spender.No findings
Why it is in this group
- The name "x402_eth_reads_v1__eth_mainnet_erc20_allowance" says "read": a word for reading.
Description, as the server wrote it Ethereum mainnet ERC-20 allowance a holder granted a spender. Ethereum mainnet ERC-20 allowance. Takes query parameters token (ERC-20 contract, 0x + 40 hex), owner (0x + 40 hex) and spender (0x + 40 hex). Returns the raw allowance read from the contract. GET https://api.arysphere.com/v1/ventures/x402_eth_reads_v1/eth_mainnet_erc20_allowance. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"]. Measured output: {"chain": "ethereum", "method": "allowance", "ok": true, "result": "0", "service": "x402_eth_reads_v1.eth_mainnet_erc20_allowance"}
Annotations the server declares
- readOnlyHint: true
x402_eth_reads_v1__eth_mainnet_erc20_balanceofEthereum mainnet ERC-20 token balance of a holder address.No findings
Why it is in this group
- The name "x402_eth_reads_v1__eth_mainnet_erc20_balanceof" says "read": a word for reading.
Description, as the server wrote it Ethereum mainnet ERC-20 token balance of a holder address. Ethereum mainnet ERC-20 balanceOf. Takes query parameters token (ERC-20 contract, 0x + 40 hex) and address (holder, 0x + 40 hex). Returns the holder's raw token balance read from the contract. GET https://api.arysphere.com/v1/ventures/x402_eth_reads_v1/eth_mainnet_erc20_balanceof. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"]. Measured output: {"chain": "ethereum", "method": "balanceOf", "ok": true, "result": "291368219", "service": "x402_eth_reads_v1.eth_mainnet_erc20_balanceof"}
Annotations the server declares
- readOnlyHint: true
x402_eth_reads_v1__eth_mainnet_erc20_totalsupplyEthereum mainnet ERC-20 total supply of a token contract.No findings
Why it is in this group
- The name "x402_eth_reads_v1__eth_mainnet_erc20_totalsupply" says "read": a word for reading.
Description, as the server wrote it Ethereum mainnet ERC-20 total supply of a token contract. Total supply of an ERC-20 token contract on Ethereum via totalSupply given token address. GET https://api.arysphere.com/v1/ventures/x402_eth_reads_v1/eth_mainnet_erc20_totalsupply. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"]. Measured output: {"chain": "ethereum", "method": "totalSupply", "ok": true, "result": "88302633055702652", "service": "x402_eth_reads_v1.eth_mainnet_erc20_totalsupply"}
Annotations the server declares
- readOnlyHint: true
x402_eth_reads_v1__eth_mainnet_erc721_ownerofEthereum mainnet NFT (ERC-721) owner of a token id.1 finding
Why it is in this group
- The name "x402_eth_reads_v1__eth_mainnet_erc721_ownerof" says "read": a word for reading.
Findings
- Warn
The description contains a 42-character base64 string.
What this check looks forMatched text
description: "...3252496", "token": "0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D"}, "service": "x402..."
Description, as the server wrote it Ethereum mainnet NFT (ERC-721) owner of a token id. Returns the owner address of an ERC-721 token on Ethereum mainnet. Takes token (contract address, 0x plus 40 hex) and id (decimal token id). GET https://api.arysphere.com/v1/ventures/x402_eth_reads_v1/eth_mainnet_erc721_ownerof. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"]. Measured output: {"chain": "ethereum", "method": "ownerOf", "ok": true, "result": {"id": "1", "owner": "0x46efbaedc92067e6d60e84ed6395099723252496", "token": "0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D"}, "service": "x402_eth_reads_v1.eth_mainnet_erc721_ownerof"}
Annotations the server declares
- readOnlyHint: true
x402_eth_reads_v1__eth_mainnet_eth_blocknumberEthereum mainnet on-chain read: the latest block number.No findings
Why it is in this group
- The name "x402_eth_reads_v1__eth_mainnet_eth_blocknumber" says "read": a word for reading.
Description, as the server wrote it Ethereum mainnet on-chain read: the latest block number. Returns the latest Ethereum mainnet block number via eth_blockNumber. Takes no parameters. GET https://api.arysphere.com/v1/ventures/x402_eth_reads_v1/eth_mainnet_eth_blocknumber. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"]. Measured output: {"chain": "ethereum", "hex": "0x18ff378", "method": "eth_blockNumber", "ok": true, "result": 26211192, "service": "x402_eth_reads_v1.eth_mainnet_eth_blocknumber"}
Annotations the server declares
- readOnlyHint: true
x402_eth_reads_v1__eth_mainnet_eth_getbalanceEthereum mainnet on-chain read: the native balance of an address.No findings
Why it is in this group
- The name "x402_eth_reads_v1__eth_mainnet_eth_getbalance" says "read": a word for reading.
Description, as the server wrote it Ethereum mainnet on-chain read: the native balance of an address. Ethereum mainnet ETH balance for one address via eth_getBalance. Takes address (0x + 40 hex) and returns the hex balance in wei. GET https://api.arysphere.com/v1/ventures/x402_eth_reads_v1/eth_mainnet_eth_getbalance. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"]. Measured output: {"chain": "ethereum", "hex": "0x50122e9e75120cc5", "method": "eth_getBalance", "ok": true, "result": 5769725330718854341, "service": "x402_eth_reads_v1.eth_mainnet_eth_getbalance"}
Annotations the server declares
- readOnlyHint: true
x402_eth_reads_v1__eth_mainnet_eth_getcodeEthereum mainnet on-chain read: the deployed bytecode at an address.No findings
Why it is in this group
- The name "x402_eth_reads_v1__eth_mainnet_eth_getcode" says "read": a word for reading.
Description, as the server wrote it Ethereum mainnet on-chain read: the deployed bytecode at an address. Takes an address (0x + 40 hex) and returns the contract bytecode on Ethereum mainnet via eth_getCode. GET https://api.arysphere.com/v1/ventures/x402_eth_reads_v1/eth_mainnet_eth_getcode. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"]. Measured output: {"chain": "ethereum", "hex": "0xef01005a7fc11397e9a8ad41bf10bf13f22b0a63f96f6d", "method": "eth_getCode", "ok": true, "result": "0xef01005a7fc11397e9a8ad41bf10bf13f22b0a63f96f6d", "service": "x402_eth_reads_v1.eth_mainnet_eth_getcode"}
Annotations the server declares
- readOnlyHint: true
x402_eth_reads_v1__eth_mainnet_eth_getlogsEthereum mainnet on-chain read: a contract's event logs, filtered by topic and block range.No findings
Why it is in this group
- The name "x402_eth_reads_v1__eth_mainnet_eth_getlogs" says "read": a word for reading.
Description, as the server wrote it Ethereum mainnet on-chain read: a contract's event logs, filtered by topic and block range. Ethereum mainnet contract event logs via eth_getLogs. Query parameters: address (contract, 0x + 40 hex), topic0 (optional event signature hash, 0x + 64 hex), blocks (optional, last N blocks, 1-100, default 10). GET https://api.arysphere.com/v1/ventures/x402_eth_reads_v1/eth_mainnet_eth_getlogs. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"]. Measured output: {"chain": "ethereum", "method": "eth_getLogs", "ok": true, "result": {"count": 1394, "from_block": 26210345, "logs": [{"address": "0xdac17f958d2ee523a2206206994597c13d831ec7", "blockHash": "0xf88c7d6da7b73bdf869dac8661602de3f98f208d7eb052a1073edd6e5041a363", "blockNumber": "0x18ff029", "blockTimestamp": "0x6ad30f1b", "data": "0x0000000000000000000000000000000000000000000000000000000011000a58", "logIndex": "0x17", "removed": false, "topics": ["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", "0x000000000000000000000000bdb3ba9ffe392549e1f8658dd2630c141fdf47b6"], "transactionHash": "0x4c1a6d22ae7677c3c500e5ad82827193dbc4aaf488a6af3c3e7c8ce5e04334a0", "transactionIndex": "0x2"}, {"address": "0xdac17f958d2ee523a2206206994597c13d831ec7", "blockHash": "0xf88c7d6da7b73bdf869dac8661602de3f98f208d7eb052a1073edd6e5041a363", "blockNumber": "0x18ff029", "blockTimestamp": "0x6ad30f1b", "data": "0x0000000000000000000000000000000000000000000000000000000002faf080", "logIndex": "0x39", "removed": false, "topics": ["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", "0x000000000000000000000000924e1b33b1fc3041351b2082ddd11d5c8bcca370"], "transactionHash": "0x6cb83f77e12d2b4be5980a47bcfd0f3a24a3743cbc49775a323172f539610a5f", "transactionIndex": "0x8"}], "to_block": 26210354, "truncated": true}, "service": "x402_eth_reads_v1.eth_mainnet_eth_getlogs"}
Annotations the server declares
- readOnlyHint: true
x402_eth_reads_v1__eth_mainnet_eth_gettransactionbyhashEthereum mainnet on-chain read: a transaction by its hash.No findings
Why it is in this group
- The name "x402_eth_reads_v1__eth_mainnet_eth_gettransactionbyhash" says "read": a word for reading.
Description, as the server wrote it Ethereum mainnet on-chain read: a transaction by its hash. Returns full Ethereum transaction details by hash via eth_getTransactionByHash on Ethereum mainnet. GET https://api.arysphere.com/v1/ventures/x402_eth_reads_v1/eth_mainnet_eth_gettransactionbyhash. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"]. Measured output: {"chain": "ethereum", "method": "eth_getTransactionByHash", "ok": true, "result": {"accessList": [], "blockHash": "0x7538fe3a3bb34856c428edf3a6987a3f65c62e420473a509e0ef6e6446aac74b", "blockNumber": "0x18f1ab8", "blockTimestamp": "0x6ac905e3", "chainId": "0x1", "from": "0xc917c3fa468f2c4b9c84c72caa46420eb9825249", "gas": "0x6e4cc", "gasPrice": "0x206e2cc9", "hash": "0xc43fe089e6e8de6c1bf47a65f74661323154af09655dbde2c7f728e768d864eb", "input": "0x09c5eabe000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002950000cca0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000001000000000000000000000000", "maxFeePerGas": "0x40f9b8b4", "maxPriorityFeePerGas": "0x0", "nonce": "0x23866", "r": "0x4ce24c0306d81eb49173e339b90025a281ccc73f1b645c955cdcaa32dfa81ab1", "s": "0x26efbc9d02b4e6d659ea3823fe3ec6ea84409edcf6b21a8737b041af3ce6308b", "to": "0x0000000aa232009084bd71a5797d089aa4edfad4", "transactionIndex": "0x0", "type": "0x2", "v": "0x0", "value": "0x0", "yParity": "0x0"}, "service": "x402_chain_reads_v1.eth_gettransactionbyhash"}
Annotations the server declares
- readOnlyHint: true
x402_eth_reads_v1__eth_mainnet_gaspriceEthereum mainnet on-chain read: the current gas price in wei.No findings
Why it is in this group
- The name "x402_eth_reads_v1__eth_mainnet_gasprice" says "read": a word for reading.
Description, as the server wrote it Ethereum mainnet on-chain read: the current gas price in wei. Returns the current Ethereum mainnet gas price in wei; takes no parameters. GET https://api.arysphere.com/v1/ventures/x402_eth_reads_v1/eth_mainnet_gasprice. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"]. Measured output: {"chain": "ethereum", "hex": "0x567f911", "method": "eth_gasPrice", "ok": true, "result": 90700049, "service": "x402_eth_reads_v1.eth_mainnet_gasprice"}
Annotations the server declares
- readOnlyHint: true
x402_eth_reads_v1__eth_mainnet_getblockbynumberEthereum mainnet on-chain read: a block by number or 'latest'.1 finding
Why it is in this group
- The name "x402_eth_reads_v1__eth_mainnet_getblockbynumber" says "read": a word for reading.
Findings
- Info
The description is 2,053 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "...19ae16886f5321840808584"}, "service": "x402_chain_reads_v1.eth_getblockbynumber"}"
Description, as the server wrote it Ethereum mainnet on-chain read: a block by number or 'latest'. Returns the Ethereum block header for a given block number or 'latest'. GET https://api.arysphere.com/v1/ventures/x402_eth_reads_v1/eth_mainnet_getblockbynumber. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"]. Measured output: {"chain": "ethereum", "method": "eth_getBlockByNumber", "ok": true, "result": {"baseFeePerGas": "0x206e2cc9", "blobGasUsed": "0x140000", "difficulty": "0x0", "excessBlobGas": "0xc0db577", "extraData": "0x546974616e2028746974616e6275696c6465722e78797a29", "gasLimit": "0x3938700", "gasUsed": "0x169e64a", "hash": "0x7538fe3a3bb34856c428edf3a6987a3f65c62e420473a509e0ef6e6446aac74b", "logsBloom": "0x51ef0f6b5db85bb77c3f1b4de1e5dfafd5fedf65f45c753c161735b56e9beff5dc2cc73aa3bc2fafb97e7b917abf7dddc76b513d9f67ef73dfff2ff2bfefe4db7379d7e11ef186fae93b772fb47b47ffeee47771edfe1bba7176649acf657edef630646aa6ce2a61faf7faf32e606cc7dbffc2be70d6b6", "miner": "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97", "mixHash": "0xae6149f7ce26ec6622dcee60ac3581ec58f376c6e617344d5d26fa6c79fcd84f", "nonce": "0x0000000000000000", "number": "0x18f1ab8", "parentBeaconBlockRoot": "0x0a477cb0499fc7f2a7d288b176f58f017ce1fc816648df3df102066289a3a962", "parentHash": "0x49c6e74104654981bc3d21e12e9df6dcb4fad59c775948d9c43ecc662dbbeebe", "receiptsRoot": "0xd4d60719e4ba28f68eb398a5d861d44bfdb8a171742a756e0dbcc50250136183", "requestsHash": "0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "size": "0x1d1af", "stateRoot": "0xafc5c4791f953764c1240c4605600bffa650467910ff793a6ad44a44ec5bcdad", "timestamp": "0x6ac905e3", "transactionsRoot": "0xc00956eb9e6da8da2db4d3a68333bf790f6fb92471b67121666f3a739a0b9e6c", "uncles": [], "withdrawalsRoot": "0x58b153ac66ecab07f3a899101e5e839985a01f22419ae16886f5321840808584"}, "service": "x402_chain_reads_v1.eth_getblockbynumber"}
Annotations the server declares
- readOnlyHint: true
x402_eth_reads_v1__eth_mainnet_logs_and_txEthereum mainnet bundle: several reads in one paid call.No findings
Why it is in this group
- The name "x402_eth_reads_v1__eth_mainnet_logs_and_tx" says "read": a word for reading.
Description, as the server wrote it Ethereum mainnet bundle: several reads in one paid call. Returns eth_getLogs and eth_getTransactionByHash results for the given Ethereum mainnet parameters in one paid call. Returns: each named part service's own result, in one paid call, keyed by the part's name -- exactly what each part returns when bought alone; the call succeeds only when every part answers. It takes the union of the parts' query parameters. GET https://api.arysphere.com/v1/ventures/x402_eth_reads_v1/eth_mainnet_logs_and_tx. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"].
Annotations the server declares
- readOnlyHint: true
x402_eth_reads_v1__eth_mainnet_token_reads_bundleEthereum mainnet bundle: several reads in one paid call.No findings
Why it is in this group
- The name "x402_eth_reads_v1__eth_mainnet_token_reads_bundle" says "read": a word for reading.
Description, as the server wrote it Ethereum mainnet bundle: several reads in one paid call. Returns: each named part service's own result, in one paid call, keyed by the part's name -- exactly what each part returns when bought alone; the call succeeds only when every part answers. It takes the union of the parts' query parameters. GET https://api.arysphere.com/v1/ventures/x402_eth_reads_v1/eth_mainnet_token_reads_bundle. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"].
Annotations the server declares
- readOnlyHint: true
x402_eth_reads_v1__eth_mainnet_tx_receiptEthereum mainnet on-chain read: a transaction receipt (status, gas used, logs) by hash.No findings
Why it is in this group
- The name "x402_eth_reads_v1__eth_mainnet_tx_receipt" says "read": a word for reading.
Description, as the server wrote it Ethereum mainnet on-chain read: a transaction receipt (status, gas used, logs) by hash. Ethereum mainnet transaction receipt via eth_getTransactionReceipt. Takes query parameter hash (transaction hash, 0x + 64 hex). Returns the node's receipt: status, block, gas used, logs. GET https://api.arysphere.com/v1/ventures/x402_eth_reads_v1/eth_mainnet_tx_receipt. Same payment terms as that HTTP route. Call once with no payment. The result is the payment terms. Retry the same call with the signed payment at _meta["x402/payment"].
Annotations the server declares
- readOnlyHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http arysphere-x402 https://ari001.tailb4ac3a.ts.net/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__arysphere-x402__x402_chain_reads_v1__base_contract_abi",
"mcp__arysphere-x402__x402_chain_reads_v1__base_erc20_balanceof",
"mcp__arysphere-x402__x402_chain_reads_v1__base_erc721_ownerof",
"mcp__arysphere-x402__x402_chain_reads_v1__base_eth_getbalance",
"mcp__arysphere-x402__x402_chain_reads_v1__base_eth_getblockbynumber",
"mcp__arysphere-x402__x402_chain_reads_v1__base_eth_getlogs",
"mcp__arysphere-x402__x402_chain_reads_v1__base_eth_gettransactionbyhash",
"mcp__arysphere-x402__x402_chain_reads_v1__base_reads_bundle",
"mcp__arysphere-x402__x402_chain_reads_v1__base_token_verdict_read",
"mcp__arysphere-x402__x402_chain_reads_v1__base_tx_explain",
"mcp__arysphere-x402__x402_chain_reads_v1__base_tx_verdict_bundle",
"mcp__arysphere-x402__x402_chain_reads_v1__base_verdict_wallet_snapshot_bundle",
"mcp__arysphere-x402__x402_chain_reads_v1__base_wallet_snapshot",
"mcp__arysphere-x402__x402_chain_reads_v1__chain_fees_digest",
"mcp__arysphere-x402__x402_chain_reads_v1__eth_balance_verdict_bundle",
"mcp__arysphere-x402__x402_chain_reads_v1__eth_chainid",
"mcp__arysphere-x402__x402_chain_reads_v1__eth_ens_resolve",
"mcp__arysphere-x402__x402_chain_reads_v1__eth_erc20_allowance",
"mcp__arysphere-x402__x402_chain_reads_v1__eth_erc20_balanceof",
"mcp__arysphere-x402__x402_chain_reads_v1__eth_erc721_tokensof",
"mcp__arysphere-x402__x402_chain_reads_v1__eth_getbalance",
"mcp__arysphere-x402__x402_chain_reads_v1__eth_getblockbynumber",
"mcp__arysphere-x402__x402_chain_reads_v1__eth_gettransactionbyhash",
"mcp__arysphere-x402__x402_chain_reads_v1__eth_mainnet_getlogs",
"mcp__arysphere-x402__x402_chain_reads_v1__eth_token_verdict",
"mcp__arysphere-x402__x402_chain_reads_v1__eth_tx_explain",
"mcp__arysphere-x402__x402_chain_reads_v1__eth_tx_verdict_bundle",
"mcp__arysphere-x402__x402_chain_reads_v1__eth_verdict_chainid_bundle",
"mcp__arysphere-x402__x402_chain_reads_v1__gnosis_eth_getbalance",
"mcp__arysphere-x402__x402_chain_reads_v1__gnosis_eth_getlogs",
"mcp__arysphere-x402__x402_chain_reads_v1__network_info_balance_bundle",
"mcp__arysphere-x402__x402_chain_reads_v1__network_info_summary",
"mcp__arysphere-x402__x402_eth_reads_v1__eth_mainnet_contract_abi",
"mcp__arysphere-x402__x402_eth_reads_v1__eth_mainnet_erc20_allowance",
"mcp__arysphere-x402__x402_eth_reads_v1__eth_mainnet_erc20_balanceof",
"mcp__arysphere-x402__x402_eth_reads_v1__eth_mainnet_erc20_totalsupply",
"mcp__arysphere-x402__x402_eth_reads_v1__eth_mainnet_erc721_ownerof",
"mcp__arysphere-x402__x402_eth_reads_v1__eth_mainnet_eth_blocknumber",
"mcp__arysphere-x402__x402_eth_reads_v1__eth_mainnet_eth_getbalance",
"mcp__arysphere-x402__x402_eth_reads_v1__eth_mainnet_eth_getcode",
"mcp__arysphere-x402__x402_eth_reads_v1__eth_mainnet_eth_getlogs",
"mcp__arysphere-x402__x402_eth_reads_v1__eth_mainnet_eth_gettransactionbyhash",
"mcp__arysphere-x402__x402_eth_reads_v1__eth_mainnet_gasprice",
"mcp__arysphere-x402__x402_eth_reads_v1__eth_mainnet_getblockbynumber",
"mcp__arysphere-x402__x402_eth_reads_v1__eth_mainnet_logs_and_tx",
"mcp__arysphere-x402__x402_eth_reads_v1__eth_mainnet_token_reads_bundle",
"mcp__arysphere-x402__x402_eth_reads_v1__eth_mainnet_tx_receipt"
],
"ask": [
"mcp__arysphere-x402__x402_bazaar_token_verdict_v2__base_token_verdict_v3",
"mcp__arysphere-x402__x402_eth_token_verdict_v1__eth_mainnet_token_verdict",
"mcp__arysphere-x402__x402_eth_token_verdict_v1__eth_token_verdict_v3"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as arysphere-x402. Review it before you use it.