# OneSource Ethereum RPC eth_call

> OneSource Ethereum RPC eth_call is a paid API for AI agents from api.onesource.io, paid per call via x402, $0.005/call, status unknown (last checked 2026-09-15).

Executes a raw Ethereum eth_call against a contract on mainnet or Sepolia testnet, returning the encoded result

## Facts

- Endpoint: POST https://api.onesource.io/api/chain/call
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/onesource-ethereum-rpc-eth-call-ca0c9e7f
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_w4QXCZupQNOnNLFWmaTyQ

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability onesource-ethereum-rpc-eth-call-ca0c9e7f -d '<json body>'
```

Example prompt: Call the balanceOf function on the USDC contract at 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 for my wallet 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 on Ethereum mainnet — give me the raw encoded result.

## When to prefer this

Use this endpoint when you need to read state from any Ethereum smart contract by sending raw ABI-encoded calldata and getting back the encoded result, especially when you already have the function selector and encoded parameters. Prefer this over higher-level contract introspection endpoints when you need to call arbitrary view or pure functions beyond standard ERC20/721 metadata. It requires no API key and accepts micropayments via x402 (USDC on Base) or MPP (Tempo).

## Known failure modes

- Invalid contract address format — 400 with schema validation error
- Malformed calldata hex — 400 rejection
- Contract reverts — result may be 0x or execution reverted error
- Payment not attached or insufficient — 402 Payment Required
- Network or node unavailability — 503 or timeout
- Calling a non-existent function selector — returns 0x or revert

## How this service works

Simulate a read-only Ethereum contract call via eth_call - no transaction sent

## Output

A JSON object with a 'result' field containing the ABI-encoded hex return value from the contract call (e.g. '0x000000000000000000000000000000000000000000000000000000000000002a'), which the agent can decode according to the function's return type.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "to": {
   "type": "string",
   "pattern": "^0x[a-fA-F0-9]{40}$"
  },
  "data": {
   "type": "string",
   "pattern": "^0x[a-fA-F0-9]+$"
  },
  "from": {
   "type": "string",
   "pattern": "^0x[a-fA-F0-9]{40}$"
  },
  "value": {
   "type": "string",
   "pattern": "^0x[a-fA-F0-9]+$"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "data": {
   "result": "0x000000000000000000000000000000000000000000000000000000000000002a"
  },
  "meta": {
   "endpoint": "/api/chain/call",
   "cost_usdc": "0.001",
   "request_id": "00000000abcdef01",
   "payment_chain": "base",
   "payment_token": "USDC"
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/onesource-ethereum-rpc-eth-call-ca0c9e7f/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.onesource.io](https://www.zero.xyz/host/api.onesource.io/llms.txt)
