# ChainRead Read-Contract

> ChainRead Read-Contract is a paid API for AI agents from chainread.genexxis.com, paid per call via x402, $0.003/call, status unknown (last checked 2026-10-30).

Executes a read-only eth_call on a deployed smart contract across Ethereum, Base, Arbitrum, Optimism, Polygon, or BNB Chain and returns decoded results

## Facts

- Endpoint: POST https://chainread.genexxis.com/read-contract?utm_source=zero.xyz
- Price: $0.003/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-30
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/chainread-read-contract-5487dea0
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_t6BGI5YYI3ffKhHt-qIgm

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 chainread-read-contract-5487dea0 -d '<json body>'
```

Example prompt: What is the USDC balance of 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 on Ethereum? The USDC contract is 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 and the function is "balanceOf(address) view returns (uint256)".

## When to prefer this

Use this endpoint when you need to read on-chain state from a deployed EVM smart contract without signing or sending a transaction, across Ethereum, Base, Arbitrum, Optimism, Polygon, or BNB Chain. It is ideal for agents that need decoded, human-readable results from view or pure functions using human-readable ABI signatures rather than raw ABI JSON. Prefer /multicall sibling if you need up to 20 reads batched in one request. Prefer the /token sibling for standard ERC-20/ERC-721/ERC-1155 metadata, and /resolve for ENS or Basename lookups.

## Known failure modes

- Contract revert: HTTP 422 with decoded revert reason string
- Invalid contract address: error response indicating bad address format
- Unsupported chain: error if chain identifier is not one of the supported networks
- Malformed function signature: error if the signature cannot be parsed
- RPC unavailability: fallback RPCs attempted; error if all fail
- Invalid block tag: error if the block tag is unrecognized or the block does not exist

## How this service works

Call any view/pure function with a human-readable signature on Ethereum, Base, Arbitrum, Optimism, Polygon or BSC: decoded result, raw hex, block number, chain id; 422 with revert reason on revert.

## Output

A JSON object containing: the decoded result value (big integers as strings), raw hex response, the function signature used, the block number and chain ID the call was executed against, a UTC timestamp (asOf), the chain name, and the state mutability. If the contract reverts, an HTTP 422 is returned with the decoded revert reason.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "args": {
   "type": "array",
   "description": "Arguments in order; integers may be strings"
  },
  "chain": {
   "type": "string",
   "description": "ethereum (default), base, arbitrum, optimism, polygon, bsc or chain id"
  },
  "address": {
   "type": "string",
   "description": "Deployed contract address (0x...)"
  },
  "blockTag": {
   "type": "string",
   "description": "latest (default), safe, finalized, earliest, pending or a block number (alias: block)"
  },
  "function": {
   "type": "string",
   "description": "Human-readable signature, e.g. \"balanceOf(address) view returns (uint256)\"; the \"function \" prefix is optional; include returns (...) to decode"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "raw": "0x0000000000000000000000000000000000000000000000000000000000000006",
  "args": [],
  "asOf": "2026-10-25T03:50:00.000Z",
  "chain": "base",
  "result": 6,
  "source": "eth_call via public Base RPC",
  "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
  "chainId": 8453,
  "blockTag": "latest",
  "function": "decimals() returns (uint8)",
  "blockNumber": "37412345",
  "stateMutability": "view"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/chainread-read-contract-5487dea0/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from chainread.genexxis.com](https://www.zero.xyz/host/chainread.genexxis.com/llms.txt)
