Read any smart contract, instantly.
One HTTP call returns typed, decoded contract state from multiple EVM chains, with no ABI files, no node, and no SDK required. Available over REST, MCP, and n8n.
{
"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
Or try one of 14 free tools first.
You write the read. evmquery does the wiring.
Name a contract and a method. The ABI, the proxy and the batching are handled before the answer comes back.
ABI resolved
Read any verified contract by address. No ABI files to find, paste or keep in sync. Structs decode into fields you dot straight into.
- usdc.balanceOf(owner)0x70a08231 balanceOf(address)sol_int
- pool.slot0().tick0x3850c7bd slot0()sol_int
Proxy unwound
EIP-1967, transparent and beacon proxies are followed to the implementation, so you call the address users know.
0x87870B…A4E2via EIP-1967 slot0x728a13…03CF10 of 44 major contracts we checked resolve through a proxy.
Reads batched
Every independent read in an expression goes out in one Multicall3 round trip per chain. The console above reports the server's own call and round count.
token.name()token.symbol()token.decimals()token.totalSupply()Multicall3Ethereum4 calls, 1 round trip.
Same expression in your agent, your code or your workflow.
Add the MCP server to your AI client, call the REST API from your code, or add the n8n node to a workflow.
claude mcp add \
--transport http evmquery \
https://api.evmquery.com/mcp{
"mcpServers": {
"evmquery": {
"url": "https://api.evmquery.com/mcp"
}
}
}{
"servers": {
"evmquery": {
"type": "http",
"url": "https://api.evmquery.com/mcp"
}
}
}codex mcp add evmquery \
--url \
https://api.evmquery.com/mcp
codex mcp login evmquery- Customize → Connectors → Add custom connector
- Name evmquery, URL https://api.evmquery.com/mcp
- Sign in when prompted
The first connection opens a browser sign-in to your free account.
Then ask: "What's Vitalik's USDC balance on Ethereum?"
your agent can write usdc.balanceOf("0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045") on evm_ethereum
curl -X POST https://api.evmquery.com/api/v1/query \
-H "Content-Type: application/json" \
-H "x-api-key: $EVMQUERY_API_KEY" \
-d '{
"chain": "evm_ethereum",
"schema": {"contracts": {"usdc": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"}},
"expression": "usdc.balanceOf(\"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045\")"
}'Returns
- result.value
- string
- result.type
- sol_int
- meta.blockNumber
- string
- meta.totalCalls
- number
- meta.totalRounds
- number
- performance.latencyMs
- number
- units.consumed
- number
- Settings → Community Nodes → Install, then paste n8n-nodes-evmquery. Self-hosted: npm install n8n-nodes-evmquery in your custom nodes folder, then restart n8n.
- Credentials → New → evmquery API, then paste the key from your dashboard.
- Add an evmquery node. Chain Ethereum, contract usdc at 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, expression usdc.balanceOf("0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045").
14 free tools. No API key.
Each tool runs a real evmquery expression against the live API in your browser, with no signup and no wallet connection. Copy the expression into your own code when you are ready.
Browse all 14 toolsContracts
Frequently asked questions
Ethereum, Base, BNB Smart Chain, and Polygon 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, including Claude Code, Cursor, VS Code, Codex and Claude. Setup is a single URL, with no plugins or SDKs to install. Your client handles sign-in automatically.
Yes. Every query reads from the latest block at execution time, and 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 call.
The same endpoint you just saw in action, ready for your app.
Free tier included · No credit card