# Base Contract Info Lookup

> Base Contract Info Lookup is a paid API for AI agents from agentshelf.syntexa.ch, paid per call via x402, $0.005/call, status unknown (last checked 2026-10-12).

Returns contract metadata for a Base mainnet address including bytecode size/hash, proxy slot values, implementation/admin addresses, and owner()

## Facts

- Endpoint: POST https://agentshelf.syntexa.ch/v1/base-contract-info?utm_source=zero.xyz
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-12
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/base-contract-info-lookup-52ca9bb1
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_UXDED_BdiCrjpnJUyoRuF

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 base-contract-info-lookup-52ca9bb1 -d '<json body>'
```

Example prompt: Can you check whether 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 on Base is a smart contract, and if so tell me its bytecode hash, whether it's an upgradeable proxy, the implementation address, and whether ownership has been renounced?

## When to prefer this

Use this endpoint when you need on-chain metadata for a single Base mainnet address — specifically proxy detection (EIP-1967 and legacy OpenZeppelin), bytecode fingerprinting, and ownership status. Prefer over generic blockchain explorers when you need structured JSON output suitable for agent pipelines, and when you want ownership renouncement detection out of the box. Try the free /v1/sandbox/base-contract-info endpoint first to validate inputs before paying.

## Known failure modes

- Invalid or malformed Ethereum address returns a 400 error
- Address not found on Base mainnet returns is_contract false with empty bytecode fields
- Contract does not implement owner() returns null for owner fields
- Network or RPC timeout causes a 503 or delayed response
- Missing or insufficient USDC payment returns a 402 Payment Required response

## How this service works

Call when an agent needs is_contract, bytecode size and hash, EIP-1967 and legacy OpenZeppelin proxy slots, and owner() for one Base address. USDC is an upgradeable proxy. owner_renounced is true for the zero or dead address. An EOA is is_contract false. Read-only. Send JSON {"address":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}. Exact $0.005 USDC on Base. Try unpaid POST /v1/sandbox/base-contract-info first.

## Output

A JSON object containing: is_contract (boolean), bytecode size in bytes, bytecode hash, EIP-1967 implementation slot value, EIP-1967 admin slot value, legacy OpenZeppelin proxy slot value, resolved implementation address, admin address, owner() return value (if present), and owner_renounced (boolean, true if owner is zero or dead address).

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "address": {
   "type": "string",
   "examples": [
    "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
   ],
   "description": "Account on Base mainnet. Example: 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 (Circle USDC). Returns is_contract, bytecode size and hash, EIP-1967 and legacy OpenZeppelin proxy slots, implementation, admin, and owner() when present. An EOA is is_contract false."
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/base-contract-info-lookup-52ca9bb1/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)
