Skip to main content
Glama

Read EVM, Solana, Tron or Bitcoin state (strictly read-only)

read_chain
Read-only

Generic read-only chain reader for every SwapChan chain. EVM: op=balance | nonce | token_balance {token, owner} | call {address, function:"balanceOf(address) view returns (uint256)" or abi, args} with ABI-decoded result | storage {address, slot} | code | logs {address?, event:"Transfer(address indexed from,address indexed to,uint256 value)" or topics, fromBlock, toBlock (max 50k blocks)} decoded | block | tx | receipt; any EVM op accepts blockTag (number, hex, latest, finalized) for historical reads. op=contract = contract_reader safety read. Solana: balance, sol_account (getAccountInfo), sol_program_accounts {address: programId, filters}, sol_token_accounts {owner, token?}, sol_signatures, tx. Tron: tron_account, tron_resources (energy/bandwidth/frozen), tron_call {address, function:"balanceOf(address)", args:[hex params]}, token_balance, tx. Bitcoin: btc_utxos, btc_address, btc_tx. Use it to CONFIRM find_money evidence (re-run each recovery read yourself) and to probe unknown contracts. Cannot sign, send or broadcast. Result includes display markdown with chan images: show it to the user. How to combine this with the other tools: swapchan_playbook (workflows: find-money, best-swap, rebalance, revoke-approvals, bridge-stuck, token-safety, recover-old-wallet).

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "chainId": "<chainId>",
      "op": "<op>"
    },
    "name": "read_chain"
  }
}

Input Schema

NameRequiredDescriptionDefault
opYes
abiNo
argsNo
hashNo
slotNo
blockNo
eventNo
limitNo
ownerNo
tokenNo
topicsNo
addressNo
chainIdYesChain id (1, 8453, 42161, 10, 137, 56, 43114, 59144, 534352, 792703809 Solana, 8253038 Bitcoin, 728126428 Tron) or name (eth, base, arbitrum, optimism, polygon, bnb, avalanche, linea, scroll, solana, bitcoin, tron).
filtersNo
toBlockNo
blockTagNo
encodingNo
functionNo
fromBlockNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, and the description adds important behavioral details: no signing/sending/broadcasting, ABI-decoded results, a 50k-block logs limit, historical reads via blockTag, and a markdown `display` field to show users. It does not cover rate limits or pagination behavior, keeping it below a 5.

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?

The description is front-loaded and dense with necessary operation-specific detail for a 21-operation tool. However, it is a single run-on paragraph with semicolon-separated enumerations, which reduces readability compared with a structured list.

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 high complexity, low schema description coverage, and lack of an output schema, the description provides substantial per-chain operation guidance and behavioral context. It is still not fully complete because return shapes for each op are only partially addressed via the `display` note.

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

Parameters4/5

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

Schema description coverage is only 5% across 19 parameters, so the description must compensate. It meaningfully maps many op-specific parameters such as token, owner, address, slot, function, args, event, topics, fromBlock/toBlock, blockTag, and filters, but leaves some parameters like limit, encoding, hash, and block under-explained.

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: a generic read-only chain reader for every SwapChan chain. It enumerates the supported EVM, Solana, Tron, and Bitcoin operations, so an agent can distinguish it from siblings like contract_reader, verify_tx, or get_wallet_balances.

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

Usage Guidelines4/5

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

It gives clear usage contexts: confirming find_money evidence, probing unknown contracts, and following playbook workflows. It also states the hard boundary that it cannot sign, send, or broadcast, though it does not explicitly compare itself against every sibling read tool.

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.