# Saylor Innovations Data Desk: EVM Contract Ownership Check

> Saylor Innovations Data Desk: EVM Contract Ownership Check is a paid API for AI agents from saylorinnovations.com, paid per call via x402, $0.01/call, status unknown (last checked 2026-10-22).

Checks ownership details of a smart contract on 16 EVM chains, returning owner address, owner type, renouncement status, pending owner, and pause state.

## Facts

- Endpoint: GET https://saylorinnovations.com/api/chain/ownership?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-22
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/saylor-innovations-data-desk-evm-contract-ownership-check-f7e61c84
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_wD06bDyhaAhHAn9o3syTB

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 saylor-innovations-data-desk-evm-contract-ownership-check-f7e61c84
```

Example prompt: Can you check who owns the contract at 0xdAC17F958D2ee523a2206206994597C13D831ec7 on Ethereum — I want to know if ownership has been renounced, whether the owner is a wallet or contract, and if there's a pending owner transfer?

## When to prefer this

Choose this endpoint when you need to programmatically check smart contract ownership details across any of 16 supported EVM chains without writing custom RPC calls. It is ideal for security audits, due diligence on token contracts before investment, monitoring DeFi protocol governance changes, or verifying whether a contract has been renounced. It covers ownership, renouncement, pause status, and pending transfers in a single call, which would otherwise require multiple on-chain queries and ABI decoding.

## Known failure modes

- Contract address not found or invalid on the specified chain — returns null values for owner fields
- Chain name or chain ID not recognized — returns an error indicating unsupported chain
- Contract does not implement owner() — has_owner_function returns false, owner fields are null
- Network RPC timeout or unavailability — may return an error or incomplete data
- Malformed contract address (wrong length or format) — returns a validation error

## How this service works

Contract ownership check for 16 EVM chains: owner, whether it is a wallet or contract, renounced, pending owner and whether the contract is paused.

## Output

Returns a JSON object with the chain name and chain ID, the inspected contract address, current owner address (or null), owner kind (eoa or contract), whether ownership is renounced (owner is zero/dead address), any pending owner address awaiting transfer acceptance, whether the contract is currently paused, whether the contract exposes owner()/paused()/admin() functions, the result of any admin() call, the data source, and a plain-language summary note explaining the findings.

## 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": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "chain",
      "contract"
     ],
     "properties": {
      "chain": {
       "type": "string",
       "description": "chain name (ethereum, base, arbitrum, optimism, polygon, bsc, avalanche, gnosis, linea, scroll, mantle, blast, sonic, celo, berachain, unichain) or chain id"
      },
      "contract": {
       "type": "string",
       "description": "the contract address to inspect"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "json"
    },
    "example": {
     "type": "object",
     "required": [
      "chain",
      "chain_id",
      "contract",
      "has_owner_function",
      "note",
      "source"
     ],
     "properties": {
      "note": {
       "type": "string",
       "description": "plain-language reading of the result"
      },
      "chain": {
       "type": "string",
       "description": "the chain name that was queried"
      },
      "owner": {
       "type": [
        "string",
        "null"
       ],
       "description": "current owner"
      },
      "paused": {
       "type": [
        "boolean",
        "null"
       ],
       "description": "true when the contract is paused"
      },
      "source": {
       "type": "string",
       "description": "where the data was read from or how it was computed"
      },
      "chain_id": {
       "type": "number",
       "description": "EIP-155 chain id of that network"
      },
      "contract": {
       "type": "string",
       "description": "contract inspected"
      },
      "owner_kind": {
       "type": [
        "string",
        "null"
       ],
       "description": "eoa or contract"
      },
      "pending_owner": {
       "type": [
        "string",
        "null"
       ],
       "description": "owner waiting to accept a transfer"
      },
      "has_owner_function": {
       "type": "boolean",
       "description": "true when owner() answers"
      },
      "has_pause_function": {
    
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/saylor-innovations-data-desk-evm-contract-ownership-check-f7e61c84/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from saylorinnovations.com](https://www.zero.xyz/host/saylorinnovations.com/llms.txt)
