# EVM Address Type Checker (Contract vs EOA)

> EVM Address Type Checker (Contract vs EOA) is a paid API for AI agents from twin.unykorn.org, paid per call via x402, $0.002/call, status unknown (last checked 2026-09-29).

Determines whether an Ethereum-compatible address is a smart contract or an externally-owned account (EOA) on a specified EVM chain and block

## Facts

- Endpoint: POST https://twin.unykorn.org/evm-code?utm_source=zero.xyz
- Price: $0.002/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-29
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/evm-address-type-checker-contract-vs-eoa-551d085e
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_u99Ls8Jkj_B7S_da3WIb_

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-address-type-checker-contract-vs-eoa-551d085e -d '<json body>'
```

Example prompt: Is the address 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 a smart contract or a regular wallet on Ethereum mainnet?

## When to prefer this

Use this endpoint when you need a quick, pay-per-call classification of an EVM address across 10 supported chains without running your own node. Prefer it over general-purpose RPC calls when you want a simple boolean-style answer with a built-in receipt for auditability. It is especially useful in agent workflows that need to gate logic on whether an address is a contract (e.g. before calling contract-specific methods) or an EOA (e.g. before signing messages).

## Known failure modes

- Invalid address format (not matching 0x[40 hex chars]) returns a validation error
- Unsupported chain value outside the allowed enum returns an error
- Querying a future block number may return an error or empty result
- Network connectivity issues to the target EVM chain may cause timeouts
- Payment failure or insufficient funds results in a 402 response before the query executes

## How this service works

Is this address a contract or an externally-owned account — Genesis402 / UnyKorn Operator Network

## Output

Returns a JSON object indicating success, the account type classification (contract or EOA), and a payment receipt containing the transaction hash, USD amount charged, and a unique receipt ID. The core result tells you definitively whether the queried address has deployed bytecode (contract) or not (EOA) at the specified block.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "params": {
   "type": "object",
   "properties": {
    "block": {
     "type": "string"
    },
    "chain": {
     "enum": [
      "ethereum",
      "base",
      "polygon",
      "arbitrum",
      "optimism",
      "bsc",
      "avalanche",
      "gnosis",
      "linea",
      "scroll"
     ],
     "type": "string"
    },
    "address": {
     "type": "string",
     "pattern": "^0x[0-9a-fA-F]{40}$"
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "ok": true,
  "type": "evm-code",
  "receipt": {
   "tx_hash": "0x<64hex>",
   "amount_usd": 0.25,
   "receipt_id": "g402-<16hex>"
  },
  "generated_at": "<iso8601>"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/evm-address-type-checker-contract-vs-eoa-551d085e/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from twin.unykorn.org](https://www.zero.xyz/host/twin.unykorn.org/llms.txt)
