Skip to content

Read any smart contract, instantly.

One HTTP call returns typed, decoded contract state from any EVM chain. No ABI files, no node, no SDK. Available over REST, MCP, and n8n.

Ethereum
{
  "pair":   feed.description(),
  "price":  string(formatUnits(feed.latestAnswer() / priceScale, 2)),
  "supply": string(formatUnits(weth.totalSupply() / weiPerEth, 0))
}

Free to start. No monthly cap, no credit card

Everything you reach for, in one expression.

Read any EVM contract without wiring providers, ABIs, or decoders by hand.

One round trip, every time

Independent contracts, different protocols. Every read in an expression is batched into a single Multicall3 call per chain.

token.name()token.symbol()token.decimals()token.totalSupply()
Multicall3Ethereum

1 request4 reads1 round trip

Any contract

Read state by address. No ABI files, ever.

usdc.balanceOf(vitalik)
37.19 USDC

Typed results

BigInt, address, struct: decoded and ready.

{
  "value": "37192124",
  "type": "sol_int"
}

Proxy-aware

EIP-1967, transparent, beacon: resolved automatically.

0xA0b869…eB48
slot0x360894…82bbc
0x435068…402dd

resolved via EIP-1967 slot

Drop it in your agent

The same expression language on every surface. Learn it once, query from anywhere.

MCPClaudeCursorVS CodeWindsurf
HTTPRESTn8n

One line of config. Any EVM chain.

Install in your MCP client or call the REST API to get typed onchain data back.

1. Install
claude mcp add evmquery \ --transport http \ https://api.evmquery.com/mcp
2. Then

Once installed, ask your agent for onchain data in plain language. It picks the right tool call, resolves the chain, and returns typed results in the same turn.

Frequently asked questions

Ethereum, Base, and BNB Smart Chain today. We’re actively adding more EVM-compatible chains.

Yes. There’s no monthly cap, a generous free tier for development and early production use, bounded by a rate limit rather than a quota. No credit card required to get started.

Rate limits are applied per API key. Auto-batching means a single expression touching multiple contracts counts as one request. Need higher throughput? Pro and Enterprise plans are available now.

Every query is a single round trip: auto-batching folds multi-contract expressions into one Multicall3 call instead of one request per contract, and there’s no caching layer between you and the chain, so you always read live state. Actual response time depends on the target chain and contract complexity. Watch the live query console on the homepage for real, current numbers rather than a quoted average.

For MCP connections, evmquery uses browser-based sign-in — your client handles it automatically. For the REST API, requests are authenticated with an API key transmitted over HTTPS. You can generate and rotate keys from the dashboard.

No. evmquery auto-resolves ABIs for verified contracts. For unverified contracts, you can supply an ABI in the schema field of your query.

evmquery works with any client that supports the Model Context Protocol. We’ve tested with Claude Code, Cursor, VS Code, Windsurf, and Zed. Setup is a single URL — no plugins or SDKs to install. Your client handles sign-in automatically.

Yes. Every query reads from the latest block at execution time — there is no caching layer between you and the chain. Response metadata includes the exact block number so you always know what you’re looking at.

Start reading contract state with one REST call.

The same endpoint you just saw in action, ready for your app.

Free tier includedNo credit cardNo monthly cap