# AgentShelf Base eth_call

> AgentShelf Base eth_call is a paid API for AI agents from agentshelf.syntexa.ch, paid per call via x402, $0.004/call, status unknown (last checked 2026-10-18).

Executes a read-only eth_call on Base mainnet and returns the decoded result or revert reason, with no state change and no gas spend.

## Facts

- Endpoint: POST https://agentshelf.syntexa.ch/v1/base-eth-call?utm_source=zero.xyz
- Price: $0.004/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-18
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/agentshelf-base-eth-call-6e9bc989
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_b1wvcH1Ce8wt5XDX-CeTy

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 agentshelf-base-eth-call-6e9bc989 -d '<json body>'
```

Example prompt: What is the total supply of USDC on Base? Call the totalSupply() function on contract 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 using a read-only eth_call.

## When to prefer this

Use this endpoint when an agent needs to read on-chain state from Base mainnet without submitting a transaction — e.g. querying token balances, supply, decimals, or any view/pure function. Prefer it over general RPC nodes when you want a simple HTTP POST interface with decoded results and clear revert reasons. The sandbox endpoint (/v1/sandbox/base-eth-call) is available for free testing before committing the $0.004 USDC fee.

## Known failure modes

- Invalid contract address returns an error
- Malformed or mismatched calldata/signature causes a revert with decoded reason
- Specifying both 'data' and 'signature' returns a validation error
- Invalid block tag or number returns an error
- Network or RPC unavailability causes a 5xx response
- Payment not included or insufficient returns a 402 Payment Required (try sandbox first)

## How this service works

Call when an agent needs a read-only Base eth_call. Send to and data (hex) or a function signature plus args. Optional from and block. Reverts return a decoded reason. No state change and no spend. Send JSON {"to":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","data":"0x18160ddd"}. Exact $0.004 USDC on Base. Try unpaid POST /v1/sandbox/base-eth-call first.

## Output

Returns the decoded output of the eth_call — typically a typed value such as a uint256, address, or string. If the call reverts, returns a decoded revert reason string. No transaction is submitted and no state is modified.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "to": {
   "type": "string",
   "examples": [
    "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
   ],
   "description": "Contract to call on Base. Example: 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913. The call is eth_call with no value, so it cannot change state."
  },
  "args": {
   "type": "string",
   "maxLength": 2048,
   "minLength": 2,
   "description": "JSON array of arguments. Example: [\"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045\"]. A POST array is accepted. Requires signature."
  },
  "data": {
   "type": "string",
   "pattern": "^0x[0-9a-fA-F]*$",
   "examples": [
    "0x18160ddd"
   ],
   "description": "Calldata, 0x hex, at most 2048 characters. Example: 0x18160ddd (totalSupply()). Send data or signature, not both. eth_call cannot change state."
  },
  "from": {
   "type": "string",
   "description": "Optional eth_call from address. Example: 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045. It is not a transaction sender and nothing is spent."
  },
  "block": {
   "type": "string",
   "description": "Block tag or number for eth_call. latest, finalized, safe, or a non-negative integer. Omit it for latest. The call is read-only."
  },
  "signature": {
   "type": "string",
   "maxLength": 180,
   "minLength": 3,
   "description": "Function signature. Example: decimals() or balanceOf(address)(uint256). args is a JSON array when the function has parameters. Send signature or data, not both."
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/agentshelf-base-eth-call-6e9bc989/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agentshelf.syntexa.ch](https://www.zero.xyz/host/agentshelf.syntexa.ch/llms.txt)
