# Saylor Innovations ENS Name Expiry Checker

> Saylor Innovations ENS Name Expiry Checker is a paid API for AI agents from saylorinnovations.com, paid per call via x402, $0.01/call, status unknown (last checked 2026-11-01).

Returns the registration status, expiry date, days remaining, grace period, registrant, resolver, and resolved address for any ENS .eth name.

## Facts

- Endpoint: GET https://saylorinnovations.com/api/chain/ens-expiry?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-11-01
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/saylor-innovations-ens-name-expiry-checker-8f598a32
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_8EYnRoHmBVvX6EtYNphup

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-ens-name-expiry-checker-8f598a32
```

Example prompt: Can you check the ENS status of vitalik.eth — I want to know if it's still registered, when it expires, how many days are left, and what Ethereum address it resolves to?

## When to prefer this

Choose this endpoint when you need a single, comprehensive ENS name status check covering expiry, availability, grace period, registrant, resolver, and resolved address in one call. Prefer it over raw blockchain RPC calls when you want a structured JSON response with plain-language interpretation and no need to handle raw contract ABIs. Ideal for agents making decisions about ENS name availability, ownership verification before sending funds, or monitoring expiry timelines.

## Known failure modes

- Invalid or malformed .eth name returns an error
- Name not found on-chain returns available status with nulls for owner/resolver fields
- Upstream ENS node or RPC timeout causes service error
- Rate limiting or payment failure returns 402 or 429 response

## How this service works

ENS .eth name status: expiry date, days left, grace period, available or not, registrant, resolver and the address the name resolves to.

## Output

A JSON object containing the normalised .eth name, a boolean indicating whether it is registered, a status string (active, in_grace_period, premium_auction, available_expired, or available), the expiry timestamp, days until expiry (negative if already expired), the grace period end date, the registrant wallet address, the resolver contract address, the resolved Ethereum address, the namehash node, the labelhash, the data source, and a plain-language summary note explaining the result.

## 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",
      "POST",
      "PUT",
      "PATCH",
      "DELETE",
      "HEAD"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "properties": {
      "name": {
       "type": "string",
       "description": "a second-level .eth name such as vitalik.eth (the .eth suffix is optional)"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "json"
    },
    "example": {
     "type": "object",
     "required": [
      "name",
      "registered",
      "status",
      "node",
      "labelhash",
      "note",
      "source"
     ],
     "properties": {
      "name": {
       "type": "string",
       "description": "normalised .eth name"
      },
      "node": {
       "type": "string",
       "description": "namehash of the name"
      },
      "note": {
       "type": "string",
       "description": "plain-language reading of the result, including units"
      },
      "source": {
       "type": "string",
       "description": "where the data was read from"
      },
      "status": {
       "type": "string",
       "description": "active, in_grace_period, premium_auction, available_expired or available"
      },
      "expires": {
       "type": [
        "string",
        "null"
       ],
       "description": "expiration time"
      },
      "resolver": {
       "type": [
        "string",
        "null"
       ],
       "description": "resolver contract"
      },
      "labelhash": {
       "type": "string",
       "description": "keccak256 of the label"
      },
      "registered": {
       "type": "boolean",
       "description": "true when the name has a registration"
      },
      "registrant": {
       "type": [
        "string",
        "null"
       ],
       "description": "owner of the name"
      },
      "resolved_address": {
       "type": [
        "string",
        "null"
       ],
       "description": "address the name resolves to"
      },
      "days_until_expiry": {
       "type": [
        "number",
        "null"
       ],
       "
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/saylor-innovations-ens-name-expiry-checker-8f598a32/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)
