Ethereum contract call
Read-only contract call on Ethereum (eth_call): send ABI-encoded calldata to a contract at the latest block and get the raw return data, without a transaction or gas. Use to read any view function that has no dedicated tool (the example reads USDC totalSupply, selector 0x18160ddd); decode the result with the function's ABI. Calldata up to 8 KB; a call that reverts is 422 with the reason, uncharged.
Inputs
| Name | Type | Description |
|---|---|---|
to (required) | string | 0x contract address to call |
data (required) | string | 0x ABI-encoded calldata: 4-byte selector plus arguments |
from | string | Optional 0x sender address for calls that check msg.sender |
Request
Over HTTP, with a card key from /credits:
curl -H "Authorization: Bearer adt_…" "https://agent-data-tools.revmesh2074.workers.dev/eth/call?to=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48&data=0x18160ddd"
Or one of your 25 free calls, no key:
curl "https://agent-data-tools.revmesh2074.workers.dev/eth/call?to=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48&data=0x18160ddd&trial=1"
Without a key, the same URL answers 402 Payment Required with x402 and MPP terms, so an agent with a wallet pays per call in USDC (Base, Polygon, Arbitrum or Solana over x402; Base or Tempo over MPP) and retries.
Example result
{
"chain": "Ethereum",
"chainId": 1,
"to": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"data": "0x18160ddd",
"result": "0x00000000000000000000000000000000000000000000000000038d7ea4c68000",
"resultBytes": 32,
"block": 123456789
}
From an AI agent (MCP)
Add the MCP server to Claude, Cursor or any MCP client. This tool is eth_call, and the first 25 successful calls are free:
https://agent-data-tools.revmesh2074.workers.dev/mcp