# MoneyTools Contract Read (eth_call)

> MoneyTools Contract Read (eth_call) is a paid API for AI agents from tools.moneytools.dev, paid per call via x402, $0.001/call, status unknown (last checked 2026-11-05).

Calls any read-only (view) function on an EVM smart contract using a human-readable function signature and returns the decoded result, with optional historical block support.

## Facts

- Endpoint: GET https://tools.moneytools.dev/v1/contract-read?utm_source=zero.xyz
- Price: $0.001/call
- Payment: x402
- Status: unknown
- Last checked: 2026-11-05
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/moneytools-contract-read-eth-call-61c72f31
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_3D6dqV3FlkYfXThKOU6rp

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 moneytools-contract-read-eth-call-61c72f31
```

Example prompt: What's the USDC balance of 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 on Base? The USDC contract is 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 and the function is balanceOf(address) returns (uint256).

## When to prefer this

Use this endpoint when you need to read on-chain EVM contract state using a human-readable function signature without setting up a full Web3 stack or managing RPC providers. It is ideal for lightweight, one-off contract reads across multiple chains (Base, Ethereum, Arbitrum, Optimism, Polygon, BSC, Avalanche), including historical block queries. Prefer it over running your own node or using raw JSON-RPC when you want decoded results and pay-per-call pricing with no subscription required.

## Known failure modes

- Invalid or malformed contract address returns an error
- Wrong or mismatched function signature causes a revert or decode failure
- Unsupported chain name returns a validation error
- Requested block number does not exist or is too old returns an error
- Free tier exhausted (10/day) triggers HTTP 402 requiring x402 micropayment or API key
- Contract has no matching function (function not found) returns a call failure
- Network congestion or RPC timeout causes a temporary error
- Arguments list doesn't match signature arity causes a decode error

## How this service works

Read any contract (eth_call): Call any view function with a human signature and args, e.g. balanceOf(address) returns (uint256); decoded result. Optional historical block. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure. $0.001 USDC per call via x402 on Base. Run by MoneyTools.

## Output

A JSON object containing the decoded return value(s) of the smart contract view function call, plus a payment object indicating whether a charge was made (boolean), network, amount in USD, and transaction hash. Also includes free tier usage metadata and optional plan/partner hints under _moneytools.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "const": "http"
    },
    "method": {
     "const": "GET"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "chain",
      "address",
      "signature"
     ],
     "properties": {
      "args": {
       "type": "string",
       "examples": [
        "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
       ],
       "description": "comma list or JSON array"
      },
      "block": {
       "type": "string",
       "description": "block number (default latest)"
      },
      "chain": {
       "type": "string",
       "examples": [
        "base"
       ],
       "description": "chain: base, ethereum, arbitrum, optimism, polygon, bsc, avalanche"
      },
      "address": {
       "type": "string",
       "examples": [
        "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
       ],
       "description": "contract"
      },
      "signature": {
       "type": "string",
       "examples": [
        "balanceOf(address) returns (uint256)"
       ],
       "description": "function signature with returns"
      }
     }
    }
   }
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "json"
    },
    "example": {
     "type": "object",
     "properties": {
      "payment": {
       "type": "object",
       "properties": {
        "charged": {
         "type": "boolean"
        },
        "network": {
         "type": "string"
        },
        "amountUsd": {
         "type": "string"
        },
        "transaction": {
         "type": [
          "string",
          "null"
         ]
        }
       }
      },
      "freeTier": {
       "type": "object"
      },
      "_moneytools": {
       "type": "object",
       "description": "optional plan / partner hints"
      }
     },
     "description": "Tool-specific JSON result (see llms.txt / openapi.json). Always includes payment info.",
     "additionalProperties": true
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json"
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/moneytools-contract-read-eth-call-61c72f31/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from tools.moneytools.dev](https://www.zero.xyz/host/tools.moneytools.dev/llms.txt)
