# ARYSPHERE x402 chain reads and token verdicts (remote · api.arysphere.com)

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

- Trust score: 66/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-18

## Components

- remote · `api.arysphere.com`: 66/100 (this document), [markdown](https://verifymcp.io/servers/com-arysphere-arysphere-x402/api.md), [page](https://verifymcp.io/servers/com-arysphere-arysphere-x402/api)

## Channel facts

- Endpoint: `https://api.arysphere.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.1.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-18.

- **Endpoint Security**: 74/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 51/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 16750 tokens (~465/item across 36 items; 36 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 3/100
  - Stability observed for 1 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 36 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 36 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 60/100
  - Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28.

## Install

### How do I install the ARYSPHERE x402 chain reads and token verdicts MCP server?

ARYSPHERE x402 chain reads and token verdicts is a hosted endpoint at https://api.arysphere.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http com-arysphere-arysphere-x402 'https://api.arysphere.com/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "com-arysphere-arysphere-x402": {
      "url": "https://api.arysphere.com/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "com-arysphere-arysphere-x402": {
      "type": "http",
      "url": "https://api.arysphere.com/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.com-arysphere-arysphere-x402]
url = "https://api.arysphere.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-arysphere-arysphere-x402": {
      "type": "remote",
      "url": "https://api.arysphere.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-arysphere-arysphere-x402 --url 'https://api.arysphere.com/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-arysphere-arysphere-x402:
    url: "https://api.arysphere.com/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "com-arysphere-arysphere-x402": {
      "Transport": "http",
      "Url": "https://api.arysphere.com/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add com-arysphere-arysphere-x402 -t streamable-http -u 'https://api.arysphere.com/mcp'
```

### Other

```json
{
  "mcpServers": {
    "com-arysphere-arysphere-x402": {
      "type": "http",
      "url": "https://api.arysphere.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-18 (score 66, +1)

- [security] Tool “x402_bazaar_token_verdict_v2__base_token_verdict_v3” rewrote its description, which is the text the model reads
- [security] Tool “x402_chain_reads_v1__base_eth_getblockbynumber” rewrote its description, which is the text the model reads
- [security] Tool “x402_chain_reads_v1__base_eth_gettransactionbyhash” rewrote its description, which is the text the model reads
- [security] Tool “x402_chain_reads_v1__chain_fees_digest” rewrote its description, which is the text the model reads
- [security] Tool “x402_chain_reads_v1__gnosis_eth_getbalance” rewrote its description, which is the text the model reads
- [security] Tool “x402_chain_reads_v1__gnosis_eth_getlogs” rewrote its description, which is the text the model reads
- [security] Tool “x402_chain_reads_v1__network_info_summary” rewrote its description, which is the text the model reads
- [security] Tool “x402_eth_reads_v1__eth_mainnet_contract_abi” rewrote its description, which is the text the model reads
- [security] Tool “x402_eth_reads_v1__eth_mainnet_erc20_allowance” rewrote its description, which is the text the model reads
- [security] Tool “x402_eth_reads_v1__eth_mainnet_erc20_balanceof” rewrote its description, which is the text the model reads
- [security] Tool “x402_eth_reads_v1__eth_mainnet_erc20_totalsupply” rewrote its description, which is the text the model reads
- [security] Tool “x402_eth_reads_v1__eth_mainnet_erc721_ownerof” rewrote its description, which is the text the model reads
- [security] Tool “x402_eth_reads_v1__eth_mainnet_eth_blocknumber” rewrote its description, which is the text the model reads
- [security] Tool “x402_eth_reads_v1__eth_mainnet_eth_getbalance” rewrote its description, which is the text the model reads
- [security] Tool “x402_eth_reads_v1__eth_mainnet_eth_getcode” rewrote its description, which is the text the model reads
- [security] Tool “x402_eth_reads_v1__eth_mainnet_eth_getlogs” rewrote its description, which is the text the model reads
- [security] Tool “x402_eth_reads_v1__eth_mainnet_eth_gettransactioncount” rewrote its description, which is the text the model reads
- [security] Tool “x402_eth_reads_v1__eth_mainnet_gasprice” rewrote its description, which is the text the model reads
- [functional regression] Schema quality: 409 → 465
- [functional improvement] Stability: unverified → 0.03
- [functional] New tool “x402_chain_reads_v1__base_wallet_snapshot”
- [functional] New tool “x402_chain_reads_v1__eth_tx_explain”
- [functional] New tool “x402_eth_token_verdict_v1__eth_mainnet_token_verdict”

### 2026-10-17 (score 65)

First indexed and scored.

## MCP tools (36)

### `x402_bazaar_token_verdict_v2__base_token_verdict_v3` (~870 tokens)

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, el…

Input parameters:

- `token` (string, required): token contract, 0x + 40 hex

### `x402_chain_reads_v1__base_contract_abi` (~423 tokens)

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

Input parameters:

- `address` (string, required): contract, 0x + 40 hex

### `x402_chain_reads_v1__base_erc20_balanceof` (~224 tokens)

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

Input parameters:

- `address` (string, required): holder, 0x + 40 hex
- `token` (string, required): ERC-20 contract, 0x + 40 hex

### `x402_chain_reads_v1__base_erc721_ownerof` (~276 tokens)

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

Input parameters:

- `id` (string, required): token id, decimal
- `token` (string, required): ERC-721 contract, 0x + 40 hex

### `x402_chain_reads_v1__base_eth_getbalance` (~183 tokens)

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

Input parameters:

- `address` (string, required): 0x + 40 hex

### `x402_chain_reads_v1__base_eth_getblockbynumber` (~1007 tokens)

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": "0xf59afdfe8e069e8…

Input parameters:

- `block` (string, required): a block number, or 'latest'

### `x402_chain_reads_v1__base_eth_getlogs` (~841 tokens)

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

Input parameters:

- `address` (string, required): contract, 0x + 40 hex
- `blocks` (string): optional, last N blocks, 1-100 (default 10)
- `topic0` (string): optional event signature hash, 0x + 64 hex

### `x402_chain_reads_v1__base_eth_gettransactionbyhash` (~633 tokens)

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

Input parameters:

- `hash` (string, required): transaction hash, 0x + 64 hex

### `x402_chain_reads_v1__base_reads_bundle` (~171 tokens)

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

Input parameters:

- `address` (string, required): 0x + 40 hex

### `x402_chain_reads_v1__base_wallet_snapshot` (~566 tokens)

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

Input parameters:

- `address` (string, required): wallet or contract, 0x + 40 hex

### `x402_chain_reads_v1__chain_fees_digest` (~239 tokens)

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

### `x402_chain_reads_v1__eth_chainid` (~161 tokens)

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

### `x402_chain_reads_v1__eth_getblockbynumber` (~949 tokens)

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": "0x58b153ac66…

Input parameters:

- `block` (string, required): a block number, or 'latest'

### `x402_chain_reads_v1__eth_gettransactionbyhash` (~674 tokens)

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

Input parameters:

- `hash` (string, required): transaction hash, 0x + 64 hex

### `x402_chain_reads_v1__eth_tx_explain` (~997 tokens)

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": "0x8ea5ad2a58c1dae75394b1e8636e…

Input parameters:

- `hash` (string, required): transaction hash, 0x + 64 hex

### `x402_chain_reads_v1__gnosis_eth_getbalance` (~219 tokens)

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

Input parameters:

- `address` (string, required): 0x + 40 hex

### `x402_chain_reads_v1__gnosis_eth_getlogs` (~832 tokens)

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

Input parameters:

- `address` (string, required): contract, 0x + 40 hex
- `blocks` (string): optional, last N blocks, 1-100 (default 10)
- `topic0` (string): optional event signature hash, 0x + 64 hex

### `x402_chain_reads_v1__network_info_balance_bundle` (~177 tokens)

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

Input parameters:

- `address` (string, required): 0x + 40 hex

### `x402_chain_reads_v1__network_info_summary` (~242 tokens)

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

### `x402_eth_reads_v1__eth_mainnet_contract_abi` (~375 tokens)

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

Input parameters:

- `address` (string, required): contract, 0x + 40 hex

### `x402_eth_reads_v1__eth_mainnet_erc20_allowance` (~247 tokens)

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

Input parameters:

- `owner` (string, required): 0x + 40 hex
- `spender` (string, required): 0x + 40 hex
- `token` (string, required): ERC-20 contract, 0x + 40 hex

### `x402_eth_reads_v1__eth_mainnet_erc20_balanceof` (~235 tokens)

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

Input parameters:

- `address` (string, required): holder, 0x + 40 hex
- `token` (string, required): ERC-20 contract, 0x + 40 hex

### `x402_eth_reads_v1__eth_mainnet_erc20_totalsupply` (~191 tokens)

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

Input parameters:

- `token` (string, required): ERC-20 contract, 0x + 40 hex

### `x402_eth_reads_v1__eth_mainnet_erc721_ownerof` (~278 tokens)

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

Input parameters:

- `id` (string, required): token id, decimal
- `token` (string, required): ERC-721 contract, 0x + 40 hex

### `x402_eth_reads_v1__eth_mainnet_eth_blocknumber` (~169 tokens)

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

### `x402_eth_reads_v1__eth_mainnet_eth_get_block_by_number` (~953 tokens)

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": "0x58b153ac…

Input parameters:

- `block` (string, required): a block number, or 'latest'

### `x402_eth_reads_v1__eth_mainnet_eth_getbalance` (~209 tokens)

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

Input parameters:

- `address` (string, required): 0x + 40 hex

### `x402_eth_reads_v1__eth_mainnet_eth_getcode` (~247 tokens)

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

Input parameters:

- `address` (string, required): 0x + 40 hex

### `x402_eth_reads_v1__eth_mainnet_eth_getlogs` (~845 tokens)

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

Input parameters:

- `address` (string, required): contract, 0x + 40 hex
- `blocks` (string): optional, last N blocks, 1-100 (default 10)
- `topic0` (string): optional event signature hash, 0x + 64 hex

### `x402_eth_reads_v1__eth_mainnet_eth_gettransactionbyhash` (~652 tokens)

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

Input parameters:

- `hash` (string, required): transaction hash, 0x + 64 hex

### `x402_eth_reads_v1__eth_mainnet_eth_gettransactioncount` (~187 tokens)

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

Input parameters:

- `address` (string, required): 0x + 40 hex

### `x402_eth_reads_v1__eth_mainnet_gasprice` (~170 tokens)

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

### `x402_eth_reads_v1__eth_mainnet_getblockbynumber` (~934 tokens)

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

Input parameters:

- `block` (string, required): a block number, or 'latest'

### `x402_eth_reads_v1__eth_mainnet_logs_and_tx` (~243 tokens)

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

Input parameters:

- `address` (string, required): contract, 0x + 40 hex
- `blocks` (string): optional, last N blocks, 1-100 (default 10)
- `hash` (string, required): transaction hash, 0x + 64 hex
- `topic0` (string): optional event signature hash, 0x + 64 hex

### `x402_eth_reads_v1__eth_mainnet_tx_receipt` (~163 tokens)

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

Input parameters:

- `hash` (string, required): transaction hash, 0x + 64 hex

### `x402_eth_token_verdict_v1__eth_mainnet_token_verdict` (~968 tokens)

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": "0x4e68c…

Input parameters:

- `token` (string, required): token contract, 0x + 40 hex

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-arysphere-arysphere-x402/api#diagnostics

## Score history

- 2026-10-18: 66
- 2026-10-17: 65

## Common questions

### What is the ARYSPHERE x402 chain reads and token verdicts MCP server?

ARYSPHERE x402 chain reads and token verdicts is an MCP server listed in the public MCP registry as com.arysphere/arysphere-x402. Pay-per-call onchain reads (Base, Ethereum, Gnosis), token verdicts and LLM chat over x402 USDC. This page covers its hosted endpoint (https://api.arysphere.com/mcp).

### Is the ARYSPHERE x402 chain reads and token verdicts MCP server safe to use?

ARYSPHERE x402 chain reads and token verdicts scores 66 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the ARYSPHERE x402 chain reads and token verdicts MCP server expose?

ARYSPHERE x402 chain reads and token verdicts exposes 36 tools: x402_bazaar_token_verdict_v2__base_token_verdict_v3, x402_chain_reads_v1__base_contract_abi, x402_chain_reads_v1__base_erc20_balanceof, x402_chain_reads_v1__base_erc721_ownerof, x402_chain_reads_v1__base_eth_getbalance, and 31 more. Their descriptions and schemas cost roughly 16,750 tokens of context every time the server is loaded.

### Does the ARYSPHERE x402 chain reads and token verdicts MCP server require authentication?

No. We connected to ARYSPHERE x402 chain reads and token verdicts without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the ARYSPHERE x402 chain reads and token verdicts MCP server still maintained?

ARYSPHERE x402 chain reads and token verdicts is still listed as active in the MCP registry. We last reached this channel on 18 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://api.arysphere.com/mcp
- Changelog RSS feed: https://verifymcp.io/servers/com-arysphere-arysphere-x402/api.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-arysphere-arysphere-x402/api.json
- HTML version of this page: https://verifymcp.io/servers/com-arysphere-arysphere-x402/api
