# EVM Chain Read – Is-Contract Check (x402)

> EVM Chain Read – Is-Contract Check (x402) is a paid API for AI agents from chain-read.frcompanycheck.workers.dev, paid per call via x402, $0.002/call, status unknown (last checked 2026-10-29).

Returns the deployed bytecode size and a boolean indicating whether the given address is a smart contract on Base or Robinhood Chain, paid per-call via x402 USDC.

## Facts

- Endpoint: GET https://chain-read.frcompanycheck.workers.dev/v1/%7Bchain%7D/code/%7Baddress%7D?utm_source=zero.xyz
- Price: $0.002/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-29
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/evm-chain-read-is-contract-check-x402-749712cb
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_FReuuYVIStNOqRpzsf7PP

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 evm-chain-read-is-contract-check-x402-749712cb
```

Example prompt: Can you check whether the address 0xAbC123...def456 on Base (chain 8453) is a smart contract or a regular wallet — tell me the bytecode size too?

## When to prefer this

Choose this endpoint when you need a lightweight, pay-per-call check to determine whether an address has deployed code on Base or Robinhood Chain — no API key required, costs only $0.002 USDC per call. Prefer it over full-node RPC calls when you lack direct RPC access, or over general-purpose block explorers when you need a programmatic, low-latency boolean result rather than a full explorer page.

## Known failure modes

- Invalid or malformed EVM address returns an error response
- Unsupported chain ID (not 8453 or 4663) returns an error
- Payment failure or insufficient USDC balance blocks the call with a 402 response
- RPC node unavailability may cause timeouts or 503 errors
- Freshly deployed contracts may not yet be indexed depending on block finality

## How this service works

Pay-per-call EVM reads on Base (8453) and Robinhood Chain (4663): native balance, block tip, ERC-20 meta/balance/allowance, is-contract. Public RPCs, no API key. x402 USDC on Base.

## Output

A JSON object containing `code_bytes` (integer: length of deployed bytecode at the address) and `is_contract` (boolean: true if bytecode length > 0, meaning a smart contract is deployed there). Returns is_contract: false and code_bytes: 0 for externally owned accounts (EOAs).

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "properties": {
   "type": "string"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "code_bytes": 5000,
  "is_contract": true
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/evm-chain-read-is-contract-check-x402-749712cb/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from chain-read.frcompanycheck.workers.dev](https://www.zero.xyz/host/chain-read.frcompanycheck.workers.dev/llms.txt)
