Skip to main content
Glama

Crypto Bot Audit + Market Data (x402 paid)

Read-only contract call

chain_call
Read-onlyIdempotent

eth_call with your own calldata against one pinned public node: raw return data plus its decoded uint/address forms. The escape hatch for any view function we did not wrap. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/call?chain=base&to=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&data=0x95d89b41&blockTag=latest.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
toYescontract address to call [required]
dataYeshex calldata, even digits, max 4096 bytes [required]
chainYeschain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]
blockTagNoblock number or latest|safe|finalized|earliest|pending (default "latest")

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
toNo
tsNo
noteNo
chainNo
staleNo
asUintNo
caveatNo
reasonNo
sourceNo
chainIdNo
asStringNo
blockTagNo
revertedNo
asAddressNo
chainLabelNo
returnDataNo
returnSizeNo
returnedNoDataNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "asAddress": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "asString": {
      +      "type": "string"
      +    },
      +    "asUint": {
      +      "type": "string"
      +    },
      +    "blockTag": {
      +      "type": "string"
      +    },
      +    "caveat": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "chain": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "chainId": {
      +      "anyOf": [
      +        {
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "chainLabel": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "note": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "reason": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "returnData": {
      +      "type": "string"
      +    },
      +    "returnSize": {
      +      "type": "integer"
      +    },
      +    "returnedNoData": {
      +      "type": "boolean"
      +    },
      +    "reverted": {
      +      "type": "boolean"
      +    },
      +    "source": {
      +      "type": "string"
      +    },
      +    "stale": {
      +      "type": [
      +        "boolean",
      +        "null"
      +      ]
      +    },
      +    "to": {
      +      "type": "string"
      +    },
      +    "ts": {
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  2. Added

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context beyond annotations: it returns raw data plus decoded uint/address forms, costs $0.001 USDC per call, and is pinned to one public node. It does not mention rate limits or failure modes, but the added cost and return-format context justify a 4.

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

Conciseness5/5

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

The description is compact and front-loaded: it states the core operation, the escape-hatch role, the cost, supported chains, and even a byte-identical REST example in three sentences. Every sentence earns its place, and the most important selection-relevant info (escape hatch, cost, chains) appears early.

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?

Given the tool's complexity (raw calldata, multiple chains, cost, output schema present), the description covers the essential selection and invocation context: what it does, when to use it, what it costs, and which chains it supports. The output schema exists, so return values need not be described. Minor gaps like rate limits or node behavior are not critical for a read-only, idempotent call.

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 all four parameters. The description adds context about calldata being hex and the max size (4096 bytes) which is also in the schema, and it names the chains. It doesn't add much beyond the schema, but the 'raw return data plus decoded forms' hint helps an agent understand what the data parameter produces. Baseline 3 is appropriate.

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 description states a specific verb and resource: 'eth_call with your own calldata against one pinned public node.' It clearly distinguishes itself as 'the escape hatch for any view function we did not wrap,' which differentiates it from the many chain_* sibling tools that wrap specific view functions. The title 'Read-only contract call' reinforces the purpose.

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

Usage Guidelines5/5

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

The description explicitly frames this as the fallback for any view function not wrapped by a dedicated tool, which tells an agent when to use it versus the many chain_* siblings. It also lists supported chains and the exact cost, giving clear context for selection. The byte-identical REST equivalence further clarifies the operation.

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