Skip to main content
Glama

ARYSPHERE x402 chain reads and token verdicts

x402_chain_reads_v1__base_eth_getlogs

Read-only

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 Schema

TableJSON Schema
NameRequiredDescriptionDefault
blocksNooptional, last N blocks, 1-100 (default 10)
topic0Nooptional event signature hash, 0x + 64 hex
addressYescontract, 0x + 40 hex

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With only readOnlyHint=true in the annotations, the description carries most of the burden and delivers: the two-step x402 payment handshake, the default window (last 10 blocks, capped at 100), and the fact that results can come back with truncated=true. It goes well beyond what the annotation declares, though it doesn't discuss rate limits or auth beyond payment.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and parameter formats are front-loaded before the payment protocol, which is the right ordering. The trailing 'Measured output' block is a long raw JSON dump, but since no output schema exists it does earn some of its space by showing the return shape; it is still heavier than necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description justifiably explains the return structure (count, from_block/to_block, logs array, truncated) and the payment flow, and all three params are covered. Nothing critical for a correct call is missing, aside from guidance on selecting this tool over its siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents address (0x + 40 hex), topic0 (0x + 64 hex), and blocks (1-100, default 10). The description largely restates those same constraints rather than adding new semantics, so it sits at the baseline for a fully-covered schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence gives a specific verb and resource ('on-chain read: a contract's event logs') plus the two filter axes (topic and block range). The chain qualifier 'Base' and the method name 'eth_getLogs' cleanly separate it from siblings like eth_mainnet_eth_getlogs and gnosis_eth_getlogs without needing to open a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It documents an important calling protocol (call once with no payment to get terms, then retry with the signed payment at _meta['x402/payment']), which tells the agent how to invoke the paid route. However, it never states when to choose this over the sibling read tools (e.g., the mainnet or gnosis getLogs variants, or the bundle tools) or what conditions make it the wrong pick.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources