protogrid

Search / com.arysphere/arysphere-x402

ARYSPHERE x402 chain reads and token verdicts

R0· no sign-in

Pay-per-call onchain reads (Base, Ethereum, Gnosis), token verdicts and LLM chat over x402 USDC

v1.1.0 · active · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality73new
Trust80of 100
Uptime, 30 days100%
Latency p50632 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "arysphere-x402": {
      "type": "http",
      "url": "https://api.arysphere.com/mcp"
    }
  }
}
claude mcp add --transport http arysphere-x402 https://api.arysphere.com/mcp
[mcp_servers.arysphere-x402]
url = "https://api.arysphere.com/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "arysphere-x402": {
      "type": "remote",
      "url": "https://api.arysphere.com/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "arysphere-x402": {
      "type": "http",
      "url": "https://api.arysphere.com/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=arysphere-x402&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vYXBpLmFyeXNwaGVyZS5jb20vbWNwIn0%3D"
}
{
  "servers": {
    "arysphere-x402": {
      "type": "http",
      "url": "https://api.arysphere.com/mcp"
    }
  }
}
{
  "mcpServers": {
    "arysphere-x402": {
      "httpUrl": "https://api.arysphere.com/mcp"
    }
  }
}
extensions:
  "arysphere-x402":
    enabled: true
    name: "arysphere-x402"
    type: streamable_http
    uri: "https://api.arysphere.com/mcp"
    timeout: 300

Quality 73 / 100new

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-06-18; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene71 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • warn
    tools.description_length15 tools have descriptions over 1,024 characters, which crowds the context
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations37 of 37 tools declare readOnlyHint or destructiveHint
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: x402_eth_reads_v1__eth_mainnet_getblockbynumber (destructiveHint, idempotentHint, openWorldHint); x402_bazaar_token_verdict_v2__base_token_verdict_v3 (destructiveHint, idempotentHint, openWorldHint); x402_chain_reads_v1__base_contract_abi (destructiveHint, idempotentHint, openWorldHint); …
  • warn
    tools.token_costabout 13,005 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stabilityn/a · weight 15
  • n/a
    stability.changes, stability.rug_pulltool history recorded for 3 of the 7 days needed
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

37 tools, about 13,005 tokens to load them all · tool set 0c5de9b78e26 · tools last changed 2026-10-20 · checked 2026-10-20 15:26 UTC

Tool changes

  • x402_chain_reads_v1__base_verdict_balance_bundleremoved

    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_verdict_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"].

  • x402_chain_reads_v1__base_token_verdict_wallet_bundleremoved

    Base bundle: several reads in one paid call. One paid call on Base: the AI token verdict for token (grade, one-liner, roast, contract facts, deepest Uniswap V3 pool price and depth) plus the ERC-20 balanceOf address for that token. 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_token_verdict_wallet_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"].

  • x402_chain_reads_v1__base_token_verdict_readremoved

    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"}

  • x402_chain_reads_v1__base_verdict_balance_bundleadded

    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_verdict_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"].

  • x402_chain_reads_v1__base_token_verdict_wallet_bundleadded

    Base bundle: several reads in one paid call. One paid call on Base: the AI token verdict for token (grade, one-liner, roast, contract facts, deepest Uniswap V3 pool price and depth) plus the ERC-20 balanceOf address for that token. 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_token_verdict_wallet_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"].

  • x402_chain_reads_v1__base_token_verdict_readadded

    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"}

  • x402_eth_reads_v1__eth_mainnet_wallet_bundleadded

    Ethereum mainnet bundle: several reads in one paid call. Ethereum mainnet wallet check in one paid call: for one address, returns its ETH balance (eth_getBalance), nonce (eth_getTransactionCount) and contract bytecode (eth_getCode), each 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_eth_reads_v1/eth_mainnet_wallet_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"].

  • x402_eth_reads_v1__eth_mainnet_token_reads_bundleadded

    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"].

  • x402_eth_reads_v1__eth_mainnet_eth_get_block_by_numberremoved

    Ethereum mainnet on-chain read: a block by number or 'latest'. Returns an Ethereum mainnet block by number or 'latest' via eth_getBlockByNumber. Takes block (a block number, or 'latest'). GET https://api.arysphere.com/v1/ventures/x402_eth_reads_v1/eth_mainnet_eth_get_block_by_number. 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"}

  • x402_chain_reads_v1__eth_tx_explainchangeddescription
    before

    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"].

    after · 58% of words in common

    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"}

Showing the latest 10. Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 80 / 100

no-repository
provenance45
liveness100
freshness100
hygiene80

+dns-namespace +reachable +uptime-100% +updated-4d-ago -no-repository

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://api.arysphere.com/mcp streamable-httpnoneyes100%632 ms2025-06-182026-10-20

Tools (37)

x402_bazaar_token_verdict_v2__base_token_verdict_v3read-onlyCheck 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"}
x402_chain_reads_v1__base_contract_abiread-onlyBase 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"}
x402_chain_reads_v1__base_erc20_balanceofread-onlyBase 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"}
x402_chain_reads_v1__base_erc721_ownerofread-onlyBase 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"}
x402_chain_reads_v1__base_eth_getbalanceread-onlyBase 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"}
x402_chain_reads_v1__base_eth_getblockbynumberread-onlyBase 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"}
x402_chain_reads_v1__base_eth_getlogsread-onlyBase 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"}
x402_chain_reads_v1__base_eth_gettransactionbyhashread-onlyBase 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"}
x402_chain_reads_v1__base_reads_bundleread-onlyBase 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"].
x402_chain_reads_v1__base_wallet_snapshotread-onlyCheck 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"}
x402_chain_reads_v1__chain_fees_digestread-onlyGnosis 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"}
x402_chain_reads_v1__eth_chainidread-onlyEthereum 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"}
x402_chain_reads_v1__eth_getblockbynumberread-onlyEthereum 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"}
x402_chain_reads_v1__eth_gettransactionbyhashread-onlyEthereum 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"}
x402_chain_reads_v1__eth_tx_explainread-onlyExplain 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"}
x402_chain_reads_v1__gnosis_eth_getbalanceread-onlyGnosis 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"}
x402_chain_reads_v1__gnosis_eth_getlogsread-onlyGnosis 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"}
x402_chain_reads_v1__network_info_balance_bundleread-onlyBase 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"].
x402_chain_reads_v1__network_info_summaryread-onlyBase 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"}
x402_eth_reads_v1__eth_mainnet_contract_abiread-onlyEthereum 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"}
x402_eth_reads_v1__eth_mainnet_erc20_allowanceread-onlyEthereum 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"}
x402_eth_reads_v1__eth_mainnet_erc20_balanceofread-onlyEthereum 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"}
x402_eth_reads_v1__eth_mainnet_erc20_totalsupplyread-onlyEthereum 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"}
x402_eth_reads_v1__eth_mainnet_erc721_ownerofread-onlyEthereum 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"}
x402_eth_reads_v1__eth_mainnet_eth_blocknumberread-onlyEthereum 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"}
x402_eth_reads_v1__eth_mainnet_eth_getbalanceread-onlyEthereum 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"}
x402_eth_reads_v1__eth_mainnet_eth_getcoderead-onlyEthereum 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"}
x402_eth_reads_v1__eth_mainnet_eth_getlogsread-onlyEthereum 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"}
x402_eth_reads_v1__eth_mainnet_eth_gettransactionbyhashread-onlyEthereum 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"}
x402_eth_reads_v1__eth_mainnet_eth_gettransactioncountread-onlyEthereum mainnet on-chain read: an address's transaction count (nonce). Returns the number of transactions sent from an Ethereum address (eth_getTransactionCount). GET https://api.arysphere.com/v1/ventures/x402_eth_reads_v1/eth_mainnet_eth_gettransactioncount. 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": "0x1751", "method": "eth_getTransactionCount", "ok": true, "result": 5969, "service": "x402_eth_reads_v1.eth_mainnet_eth_gettransactioncount"}
x402_eth_reads_v1__eth_mainnet_gaspriceread-onlyEthereum 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"}
x402_eth_reads_v1__eth_mainnet_getblockbynumberread-onlyEthereum 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"}
x402_eth_reads_v1__eth_mainnet_logs_and_txread-onlyEthereum 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"].
x402_eth_reads_v1__eth_mainnet_token_reads_bundleread-onlyEthereum 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"].
x402_eth_reads_v1__eth_mainnet_tx_receiptread-onlyEthereum 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"].
x402_eth_reads_v1__eth_mainnet_wallet_bundleread-onlyEthereum mainnet bundle: several reads in one paid call. Ethereum mainnet wallet check in one paid call: for one address, returns its ETH balance (eth_getBalance), nonce (eth_getTransactionCount) and contract bytecode (eth_getCode), each 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_eth_reads_v1/eth_mainnet_wallet_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"].
x402_eth_token_verdict_v1__eth_mainnet_token_verdictread-onlyCheck 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"}

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "com.arysphere/arysphere-x402",
  "title": "ARYSPHERE x402 chain reads and token verdicts",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://api.arysphere.com/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "1.1.0",
  "description": "Pay-per-call onchain reads (Base, Ethereum, Gnosis), token verdicts and LLM chat over x402 USDC"
}