Prototype · Preview: every server in the official registry, synced every 30 minutes. Sign in with Google to write reviews.Prototype · updated every 30 min
PopNx MCPMCP servers for people who use AI · explained in plain words

Ankr Agent RPC

by w3techversion 0.2.8i★ 0iComputer or cloud
Registry nameio.github.w3tech/agent-rpc-mcp

How to install

What it does

Read chain data on 200+ networks and Sui: transactions, logs, balances, objects, ABI-decoded.

  • Connects Computer or cloud
  • Account or key Cloud: Works without a key · add Authorization if you have one (often raises limits) · Local: Needs ANKR_API_KEY
  • Category Developer tools

Install

Pick the AI app you use, then copy the settings.

Passed 5/5 checks · What you ask goes through the maker’s server (mcp.ankr.com) · ✓ Commands checked Nov 13, 2026

First: which AI do you use?

Pick your app and the steps appear below.

Works with Claude · about 2 min

No key, nothing to install · Set it up once on claude.ai or the desktop app, then use it in chat · free accounts can add 1 · on Team/Enterprise an Owner adds it

  1. Open Claude’s Connectors page

    CustomizeConnectors

    CustomizeConnectors1Add2https://…3Add4
  2. Click “Add” → “Custom” → “Web” and fill in these 2 fields

    Copy each value into the field with the same name in Claude, then click Continue

    Name · NameAnkr Agent RPC
    Remote MCP server URL · Addresshttps://mcp.ankr.com/rpc

    Click Continue past the sign-in settings Claude detected · under Authentication choose what the maker says (Sign in now, Sign in when needed or No sign in), then click Add

  3. Turn it on in a chat

    +ConnectorsAnkr Agent RPC

  4. Try it

    Use Ankr Agent RPC and tell me what you can do for me, then show me one thing

    ✓ If Claude says it is using Ankr Agent RPC or shows a Ankr Agent RPC tool in the answer, you are connected

Menu names checked against Anthropic’s help page on Nov 11, 2026 · your screen may differ slightly by app version

Works with ChatGPT, depending on your plan

Full MCP: ChatGPT Business, Enterprise or Edu on the web · Pro: connects with read/fetch permissions, so tools that change data may not work · Plus: not confirmed in OpenAI’s docs; if you see an add-custom-MCP option on the Plugins page you can try these steps · web only

  1. Open ChatGPT’s add-MCP page on the web

    Plugins+Add custom MCP server

    ChatGPTPlugins1+2https://…3Create4
  2. Fill in the name and address

    Enter a name, paste the address under Connection, tick the risk warning and click Create as a plugin

    Name · NameAnkr Agent RPC
    Connection · Addresshttps://mcp.ankr.com/rpc
  3. Pick Ankr Agent RPC in a chat

    Start a new chat and pick Ankr Agent RPC from your plugins before typing

  4. Try it

    Use Ankr Agent RPC and tell me what you can do for me, then show me one thing

    ✓ If ChatGPT says it is using Ankr Agent RPC or shows a Ankr Agent RPC tool in the answer, you are connected

Menu names checked against OpenAI’s help page on Nov 11, 2026 · your screen may differ slightly by app version

Works with Claude Code · about 2 min

No key, nothing to install

  1. Open Terminal

    Mac: press Command+Space and type Terminal · Windows: open PowerShell

  2. Paste this command and press Enter

    claude mcp add --transport http --scope user agent-rpc https://mcp.ankr.com/rpc
  3. Type /mcp in Claude Code

    You should see Ankr Agent RPC listed as connected

  4. Try it

    Use Ankr Agent RPC and tell me what you can do for me, then show me one thing

    ✓ If Claude Code says it is using Ankr Agent RPC or shows a Ankr Agent RPC tool in the answer, you are connected

Menu names checked against Anthropic’s help page on Nov 11, 2026 · your screen may differ slightly by app version

Works with Cursor · about 2 min

No key, nothing to install

  1. Click this button to open Cursor

    Open in Cursor

    Cursor asks you to confirm; click Install

  2. Open the AI chat in Cursor in Agent mode

  3. Try it

    Use Ankr Agent RPC and tell me what you can do for me, then show me one thing

    ✓ If Cursor says it is using Ankr Agent RPC or shows a Ankr Agent RPC tool in the answer, you are connected

Menu names checked against Cursor’s help page on Nov 11, 2026 · your screen may differ slightly by app version

Works with VS Code · about 2 min

No key, nothing to install

  1. Click this button to open VS Code

    Open in VS Code

    VS Code asks you to confirm; click Install

  2. Open the AI chat in VS Code in Agent mode

  3. Try it

    Use Ankr Agent RPC and tell me what you can do for me, then show me one thing

    ✓ If VS Code says it is using Ankr Agent RPC or shows a Ankr Agent RPC tool in the answer, you are connected

Menu names checked against VS Code’s help page on Nov 11, 2026 · your screen may differ slightly by app version

Other apps that use MCP, such as Windsurf, Zed or Gemini CLI, each add servers differently. See how in the app list.

See every app that uses MCP →

Address for apps that connect over the web

Addresshttps://mcp.ankr.com/rpc

JSON settings are under “For developers” below

Stuck? Ask people who use Ankr Agent RPC💬 Discussion →
For developers: Terminal commands and JSON settings

Over the web

Claude Code

claude mcp add --transport http --scope user agent-rpc https://mcp.ankr.com/rpc

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "agent-rpc": {
      "url": "https://mcp.ankr.com/rpc"
    }
  }
}

VS Code (mcp.json)

{
  "servers": {
    "agent-rpc": {
      "type": "http",
      "url": "https://mcp.ankr.com/rpc"
    }
  }
}

Installed on your computer

Claude Code

claude mcp add --scope user agent-rpc --env ANKR_API_KEY=your-value -- npx -y @w3tech.io/agent-rpc-mcp

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "agent-rpc": {
      "command": "npx",
      "args": [
        "-y",
        "@w3tech.io/agent-rpc-mcp"
      ],
      "env": {
        "ANKR_API_KEY": "your-value"
      }
    }
  }
}

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "agent-rpc": {
      "command": "npx",
      "args": [
        "-y",
        "@w3tech.io/agent-rpc-mcp"
      ],
      "env": {
        "ANKR_API_KEY": "your-value"
      }
    }
  }
}

VS Code (mcp.json)

{
  "servers": {
    "agent-rpc": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@w3tech.io/agent-rpc-mcp"
      ],
      "env": {
        "ANKR_API_KEY": "your-value"
      }
    }
  }
}

Values you fill in

  • ANKR_API_KEY secret required env
    Ankr API key. Create one at ankr.com/rpc.
  • Authorization secret HTTP header
    Your Ankr API key as a Bearer token (x-ankr-api-key also works). Create a key at ankr.com/rpc. Without a key, tool calls are paid per call over x402.

Descriptions are as written by the maker.

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

At a glance

Downloads per weeki
227/wk
Connection
Computer or cloud
Transport
stdio, streamable-http
Latest versioni
0.2.8
Published to registryi
Nov 3, 2026
Code last changedi
Nov 3, 2026
Maker
w3tech
Packages
npm: @w3tech.io/agent-rpc-mcp
Registry status
Active

Which apps can use it

Based on how this server connects and on each app’s own docs, checked Nov 10, 2026.

Connect over the internet in

ClaudeChatGPTGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatOpen WebUIRaycast

Run on your computer in

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast

All apps, with pros and cons →

Related guides

What it can do

Tool names and descriptions exactly as the server reported them on Nov 11, 2026. The maker wrote them, not us; we show them as plain text.

  • getAccountBalance

    Balance of an account across many blockchains, by 0x address or ENS name, via the Ankr Advanced API indexer. Assets are ranked by USD value descending and only the top 20 are listed by default (a real wallet can hold 1000+ assets, over half of them priced at $0); tune that with m

  • getTokenPrice

    USD price of a token on one blockchain: pass a contract address for an ERC-20, or leave it empty for the native coin. Returns { chain, asset, usd, priced_via_contract, as_of: { timestamp, blockNumber, lag, status } }. Read as_of before reporting a price; it says how stale the ind

  • getTransaction

    Get a transaction by its hash on one blockchain, with tier-2 decoding requested. Check tier_degraded before reading `function` or `args`. By default the receipt is fetched too (status, gas used, decoded logs). Set include to "transaction" to skip it and halve the cost. Tier-2 fie

  • getLogs

    Event logs on one chain, filtered by address and/or topics over a block range. Tier 2 emits each log as { contract, event, args }, dropping logsBloom and per-log block duplication; an undecodable one stays raw as { address, topics, data, _event_unknown }. Check tier_degraded befo

  • getBlock

    Get a block by a 0x-64 hash, a block number (decimal or 0x-hex), or a tag (latest, finalized, safe, earliest, pending). Tier 2 drops the verbose header roots and bloom and, with includeTxs, ABI-decodes and compacts the embedded transactions. A large block with includeTxs may come

  • getBalances

    An address's balances on ONE chain: native via eth_getBalance plus, by default, ERC-20 balances with USD from the Ankr Advanced API indexer (tier 0). ENS resolves for the token lookup only; a raw-RPC-only chain returns native alone. Tokens rank by USD descending, top 20 by defaul

  • getWalletActivity

    An address's recent transactions on one blockchain, newest first, via the Ankr Advanced API indexer. Items are returned under `activity`, exactly once per page, on this first page and on every continuation alike. There is no second alias key. Each item: hash, from, to, value_wei

  • resolveContract

    Inspect an address on a chain: whether it is a contract, best-effort ERC-20 token metadata (name, symbol, decimals), and EIP-1967 proxy detection (implementation address). Built from eth_getCode / eth_call / eth_getStorageAt, which are plain JSON-RPC passthrough. The metadata is

  • searchChain

    Resolve an on-chain IDENTIFIER to the object it names. Accepts exactly THREE shapes, and nothing else: - 0x + 64 hex -> transaction (falls back to block hash if there is no such tx) - 0x + 40 hex -> address (reports contract vs EOA) - all digits -> block number NOT SUPPORTED: tic

  • expandResult

    Continue a paged result using the opaque cursor returned by a previous tool call. Supported cursor sources: getWalletActivity, getLogs (a block range, or a Sui checkpoint scan), getBalances (asset offset), Sui views (tier 0 re-reads the view unshaped: a fresh upstream call, never

  • rpcCall

    Call ANY JSON-RPC method on a supported chain: the escape hatch beyond the routed tools (eth_call, eth_estimateGas, eth_getCode, debug_trace*, trace_*). Prefer getTransaction/getLogs/getBlock where they fit. TORPC tier is negotiated per call (contract 2); check _meta.tier. This i

  • suiGetObjects

    Move objects by id, in ONE batch call: each answer carries the object's id, type, version, owner and its decoded Move fields under json. Up to 50 ids per request and nothing is trimmed from the reply, so no cursor is issued. An id the node cannot serve is reported POSITIONALLY un

  • suiListOwnedObjects

    Every object an address owns, page by page, out of the node's own owner index. Narrow it with type: a bare Move type such as 0x2::coin::Coin matches any type parameter, while a fully applied one matches only that instantiation. A page holds 50 entries by default and 200 at most;

  • suiListDynamicFields

    Whatever a Move package stored under one object's UID: tables, bags and dynamic object fields, listed from the parent id. A row names the field's own object id, its kind, the name it is keyed by and the Move type of its value. The value itself is a BCS blob and is left out of thi

  • suiGetPackage

    What a published Move package declares, so a caller can pick what to inspect next. By default this answers with an INDEX: one row per module carrying its name and how many functions and datatypes it holds, capped at 50 rows (raise it with maxModules). Pass `module` to get that on

  • suiGetFunction

    One Move function's signature: visibility, whether it is an entry function, its type parameters, its parameter types and its return types — what a programmable transaction block needs in order to call it. Never capped or paged. Take the package and module names from suiGetPackage

  • suiResolveName

    Resolve a SuiNS name (something.sui) to the address it points at, or an address back to its name. Give exactly one of `name` or `address`. READ `status` BEFORE the record. It is one of: resolved, the registration is live and the record is good; expired, the registration lapsed an

  • suiSimulateTransaction

    Run a transaction against current state and report what it WOULD do, without submitting it: whether it succeeds or which Move abort stops it and in which command, the gas it consumes, the objects it creates, mutates and deletes, the balance changes per address and coin, each comm

  • suiWatchEvents

    Follow Move events from now on, by POLLING — nothing is pushed. This first call only establishes a start position: it reads the executed tip from a Sui event subscription, returns NO events, and hands back a cursor. Each expandResult on that cursor lists what has been emitted sin

  • getNFTs

    NFTs one wallet holds on one chain: collection, name, token id, contract, standard (ERC721/1155), image URL. For fungible tokens use getBalances.

  • getTokenHolders

    Who holds an ERC-20 token on one chain, largest balance first, plus the total holder count. `balance` already has decimals applied, so do not divide it again. For one wallet's tokens use getBalances.

  • getTokenPriceHistory

    Historical USD price series for a token contract on a chain, via the Ankr Advanced API indexer: a list of { timestamp, usd, block } quotes. `limit_applied` reports the cap the call was actually made with (default 100, max 1000). When `count` reaches that cap the response sets `po

  • getInteractions

    List the blockchains an address has interacted with, via the Ankr Advanced API indexer. Cross-chain, so there is no chain argument. Useful as a first step before fetching balances or activity per chain.

  • listChains

    Which chains each tool family reaches. aapiChains is where the indexer tools work (getAccountBalance, getWalletActivity, getNFTs, getTokenHolders, getTokenPrice, getTokenPriceHistory); call this before one of them on an unfamiliar chain. suiChains are answered over gRPC, by the s

  • describeMethods

    What a JSON-RPC method takes, and whether this key can actually call it on this chain. Returns the positional param shape and a worked example for every method rpcCall can validate, plus rpcCall's own verdict (permitted, or refused as a write path). Pass probe:true with an explic

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 15, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account w3tech, which owns the repo

  • ✓ Pass

    Still maintained

    Code last changed 12 days ago

  • ✓ Pass

    Has a licence

    Uses MIT

  • ✓ Pass

    Endpoint responds

    Responded in 274 ms (HTTP 200)

  • – Not applicable

    Sign-in with OAuth

    No sign-in needed

  • ✓ Pass

    No hidden instructions in tool descriptions

    Read 25 tool descriptions and found no hidden instructions to the AI

Published vulnerabilities (OSV.dev)

Not checked yet

What we check → · JSON

Makers: ask for a re-check or report wrong info

Discussion

Ask, share a tip or report that it does not work. Sorted by what people marked helpful.

No posts yet. Be the first to ask or share.

Posts here are written by users, not the PopNx team.

Sign in to post

User reviews

No reviews yet

Sign in to write a review

Compared with others in Developer toolsi

  • More stars than 0% of the other 5910 servers in this category
  • Published to the registry more recently than 67% of the other 5910 servers in this category
  • Basic checks equal to or better than 100% of the other 5910 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is Ankr Agent RPC safe?

It passed 5 of 5 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

You need to fill in: ANKR_API_KEY

Does it run on my computer or in the cloud?

Either way works: install it on your computer or connect to the cloud version.

Is it still maintained?

The GitHub repo last changed 12 days ago, and the latest version (0.2.8) reached the registry 12 days ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT on the web (full MCP on Business and above; Pro read-only).

What can I use instead?

In the same category: GitDiagram, Appllama, Cloudflare MCP, Omnara, Repowise

Similar alternatives

Same category, other makers, commands already checked. Official ones first, then by stars.

Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

GitDiagram

Architecture diagrams, explanations and Mermaid source for public GitHub repositories.

by ahmedkhaleel2004Widely used★ 18.9KUpdated 2 months ago

Runs in the cloud✓ service owner · gitdiagram.comTried by the PopNx team

Appllama

Study screens, flows and paywalls from top-earning iOS apps, then build from what wins.

by AppllamaWidely used★ 5.2KUpdated 3 months ago

Runs in the cloud✓ service owner · appllama.io

Cloudflare MCP

Cloudflare MCP servers

by cloudflareWidely used★ 4.5KUpdated 14 months ago

Runs in the cloud✓ service owner · mcp.cloudflare.comTried by the PopNx team

Omnara

Deploy durable AI agents with Omnara, an open-source managed-agent platform.

by omnara-aiWidely used★ 3.4KUpdated 2 months ago

Runs in the cloud✓ service owner · omnara.com

Repowise

Codebase intelligence for AI coding agents: graph, git history, docs, decisions, code health.

by repowise-devWidely used↓ 6.5K/wk★ 8.1K Stars for the whole repoUpdated 2 days ago

Computer or cloud✓ service owner · repowise.dev
  • GitDiagram — Runs in the cloud, nothing to install · No key needed
  • Appllama — Runs in the cloud, nothing to install · No key needed
  • Cloudflare MCP — Runs in the cloud, nothing to install · No key needed · In Claude’s directory
  • Omnara — Runs in the cloud, nothing to install · No key needed
  • Repowise — Cloud or install on your computer · No key needed

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

Ankr Agent RPC — MCP Server

A Model Context Protocol server that gives AI agents token-efficient access to blockchain data through Ankr RPC.

Reads go out with the TORPC Accept-Token-Tier: 2 header. Tier 1 already renames the fields, turns hex into decimal and drops the service fields (logsBloom, cumulativeGasUsed, header roots). Tier 2 adds the ABI decode on top, so contract calls and event logs come back as named arguments.

A live run over 21 methods and 25 Ethereum mainnet blocks, token-weighted and counted with o200k_base over the full HTTP body, came out 48.4% smaller at tier 2 and 35.3% smaller at tier 1. Decode-heavy reads save the most: eth_getTransactionByHash 69.0%, eth_getTransactionReceipt 64.5%, eth_getBlockReceipts 60.3%, the block methods 40.4%, eth_getLogs 28.9%; scalar reads save 9–19%. Per-method figures: live-token-savings-2026-07-17.md.


Quick start

Get a free API key at ankr.com/rpc.

Hosted (no install)

The server runs at https://mcp.ankr.com/rpc. Send your key as the x-ankr-api-key header (or Authorization: Bearer ); each request carries the caller's own key, and the server holds no credential of yours.

{

"mcpServers": { "ankr-agent-rpc": { "url": "https://mcp.ankr.com/rpc", "headers": { "x-ankr-api-key": " " } } } }

Local (stdio)
{

"mcpServers": { "ankr-agent-rpc": { "command": "npx", "args": ["-y", "@w3tech.io/agent-rpc-mcp"], "env": { "ANKR_API_KEY": " " } } } }

That JSON goes in your client's MCP config: Claude Desktop (claude_desktop_config.json), Cursor, Windsurf, or any other MCP client. Cursor also accepts the command form:

env ANKR_API_KEY=<YOUR_KEY> npx -y @w3tech.io/agent-rpc-mcp

Tools

Raw RPC, TORPC tier 2

ToolWhat it answers
getTransactiontransaction + receipt by hash, ABI-decoded
getLogsevent logs, decoded; wide block ranges are chunk-scanned and paged
getBlockblock header, optionally with decoded transactions

Indexed and mixed

ToolWhat it answers
getBalancesnative coin + ERC-20 balances with USD
getAccountBalancebalances across many chains at once
getWalletActivityan address's transaction history, paged
getNFTsNFTs held by an address
getTokenHoldersholders of an ERC-20, paged
getTokenPriceUSD price with chain, asset and as_of provenance
getTokenPriceHistoryhistorical price series for a token
getInteractionswhich chains an address has touched, cross-chain
resolveContractis-contract, best-effort ERC-20 metadata, EIP-1967 proxy
searchChainresolve a tx/block hash, an address, or a block number
expandResultcontinue any paged result from its cursor

Discovery and escape hatch

ToolWhat it answers
listChainssupported chains, max TORPC tier, indexer availability
describeMethodsthe param shape and a worked example per JSON-RPC method, plus whether your key may call it on that chain
rpcCallany read method the routed tools do not cover

Sui

Sui is not an EVM chain and is not reached through the JSON-RPC proxy at all: a Sui call goes out over gRPC. getBalances, getBlock, getTransaction, getWalletActivity, getLogs and rpcCall take chain: "sui" and route themselves — getLogs reads Move events over a checkpoint range, filtered by emitting package or module, event type and sender. resolveContract and searchChain are built from eth_* calls Sui has never had and refuse there, naming the tool that answers instead. A Move event row is {contract, event, args}, the same shape an EVM tier-2 log has — but its args arrives at tier 0, decoded by the node rather than from an ABI, so on this path it is not evidence of a tier.

Eight tools serve what Sui has and an EVM chain does not:

ToolWhat it answers
suiGetObjectsMove objects by id, batched, with their decoded fields
suiListOwnedObjectsevery object an address owns, paged, filterable by Move type
suiListDynamicFieldstables, bags and dynamic object fields under one object's UID
suiGetPackagethe modules a published Move package declares
suiGetFunctionone Move function's signature
suiResolveNamea SuiNS name to its address, or an address to its name
suiSimulateTransactionwhat a transaction would do, run against current state, never submitted
suiWatchEventsMove events from the executed tip on, polled from a resumable cursor

That is the whole set: 25 tools.

What rpcCall will and will not do

rpcCall is a read and data escape hatch, never a wallet. It is a write denylist, not a read allowlist: it refuses transaction broadcast and signing, transaction _building_, node and dev-node administration, mutating verbs, and the node-operation half of geth's debug_* namespace — on every chain family — and forwards everything else.

It therefore keeps no list of permitted reads. Which reads exist is decided per chain by the endpoint's blockchain schema and by what your tenant may call, so a forwarded read can still come back refused (Method disabled, reason: restricted by blockchain schema). That refusal is the authoritative answer; listChains reports coverage.

Sign and send transactions with your own wallet or signer.


Reading a response

Two fields decide how to read every result, and an agent that skips them will misread output that is technically correct.

`_meta.tier` — the TORPC tier is negotiated per call and is not guaranteed. On the proxy path a response comes back at tier 0 (raw, undecoded, no args) when it is above the proxy's compression budget, and also when the method is one the proxy does not compress at all, such as eth_call, eth_getCode and eth_getStorageAt. Every successful response carries the tier actually applied in _meta.tier, so check it before looking for decoded fields; an error result carries _meta.error_code instead and no tier at all. Some tools additionally report tier_degraded: true in the body, with a note on how to narrow the request, when they asked for tier 2 on your behalf and got less. Not all of them do, so _meta.tier is the field to rely on. _meta.tier_source says who applied the tier, and the shape rule above is the proxy's alone: on the Sui gRPC path (tier_source: "local") a Move event row carries contract, event and args at tier 0, because the node decodes a Move struct itself.

Decoded amounts are raw base units, with no decimals applied. args.value: "41695680" on a 6-decimal token is 41.69568, not 41 million. Read the token's decimals with resolveContract before reporting a human number.

_meta.token_count is a real o200k_base count of the emitted text, not a chars/4 estimate. It is exact up to 256 KB of emitted text, which covers every display-capped response; above that it is extrapolated and the response carries _meta.token_count_estimated: true. Responses are minified JSON, so a model with a different tokenizer sees a similar but not identical number.

Tool inputs are strict: an unknown argument is rejected with a validation error rather than silently dropped, so a misspelled argument name is reported instead of ignored. Block numbers above 2^53 must be passed as strings, because a JSON number that large is not exact.


TORPC tiers

TierMeaning
0passthrough — standard JSON-RPC
1field rename, hex → decimal, and the service fields dropped: logsBloom, cumulativeGasUsed, contractAddress, type, the header roots
2tier 1 plus the ABI decode — each log becomes {contract, event, args}, calldata becomes a decoded function with named args

Negotiation is by header: Accept-Token-Tier: 0|1|2 on the request, Token-Tier on the response. The proxy applies the requested tier only while the response stays inside its compression budget, and that budget is internal to the proxy — so this server never predicts the tier, it detects the applied one and reports it.

On a JSON-RPC batch that header describes the array, not any one element: a response array carries a single Token-Tier, and its value is the minimum tier applied across the elements. v1 defines no per-element tier signal, elements may sit above that floor, and a client reads each element's own tier from the shape the proxy left on it — renamed fields and decimal strings for tier 1, event/args for tier 2 — rather than from the header. So the header is a floor and a signal that a transform was applied; which methods reach tier 2 is declared per method in the descriptor at https://mcp.ankr.com/.well-known/torpc.json, which also ships in the npm package at static/.well-known/torpc.json.

Specification: w3tech/torpc, released under CC0-1.0, with the TORPC docs page as the narrative version. The reference decoder is published as @w3tech.io/torpc-decoder (Apache-2.0); its source and the benchmark harness live in w3tech/torpc-js, under codec/. The EVM tier-1 and tier-2 rules are normative in the spec today; the conformance suite is a scaffold, so no implementation, this one included, claims conformance yet.


Discovery

Two machine-readable documents describe this deployment. Both are public, carry no credential, and are readable cross-origin.

DocumentServed at

Only the beginning is shown; read the rest in the repo