# Saylor Innovations Data Desk: Block at Time

> Saylor Innovations Data Desk: Block at Time 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).

Returns the EVM block mined at or before a given timestamp on 16 supported chains, along with the gap in seconds, the next block number, and the chain's block interval.

## Facts

- Endpoint: GET https://saylorinnovations.com/api/chain/block-at-time?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-block-at-time-7ecaa3e6
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_YxIFUdMPJ7z49xRuJPzUg

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-block-at-time-7ecaa3e6
```

Example prompt: What was the Ethereum block number at midnight UTC on March 15, 2024? I also need to know how many seconds before that time the block was mined and what the next block was.

## When to prefer this

Use this endpoint when you need to resolve a human-readable date or unix timestamp to an exact EVM block number on any of the 16 supported chains (Ethereum, Base, Arbitrum, Optimism, Polygon, BSC, Avalanche, Gnosis, Linea, Scroll, Mantle, Blast, Sonic, Celo, Berachain, Unichain). It is ideal for historical data queries, on-chain state lookups at a specific point in time, or correlating off-chain events with on-chain activity. Prefer it over manual binary search or RPC calls when you want a single API call that handles the bisection logic and returns contextual metadata like gap seconds and next block.

## Known failure modes

- Unsupported chain name or chain ID returns an error
- Timestamp in an unrecognized format may be rejected
- Timestamp far in the future beyond the chain tip cannot be resolved
- Network or node errors may cause lookup failures
- Malformed query parameters return a 4xx error

## How this service works

Find the block mined at or before any date or unix time on 16 EVM chains, with the gap in seconds, the next block and the chain's block interval.

## Output

A JSON object containing the chain name and chain ID, the requested time in UTC, the resolved block number (last block at or before the requested time), the exact block timestamp in UTC, the gap in seconds between the block and the requested time, the next block number, the current chain tip, a plain-language note summarizing the result, the data source used, and the number of node requests made.

## 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",
      "timestamp"
     ],
     "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"
      },
      "timestamp": {
       "type": "string",
       "description": "unix seconds, unix milliseconds, or an ISO date such as 2024-01-31 or 2024-01-31T12:00:00Z"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "json"
    },
    "example": {
     "type": "object",
     "required": [
      "chain",
      "chain_id",
      "requested_time",
      "block_number",
      "block_time",
      "seconds_before_request",
      "note",
      "source"
     ],
     "properties": {
      "note": {
       "type": "string",
       "description": "plain-language reading of the result"
      },
      "chain": {
       "type": "string",
       "description": "the chain name that was queried"
      },
      "source": {
       "type": "string",
       "description": "where the data was read from or how it was computed"
      },
      "lookups": {
       "type": "number",
       "description": "node requests used"
      },
      "chain_id": {
       "type": "number",
       "description": "EIP-155 chain id of that network"
      },
      "block_time": {
       "type": "string",
       "description": "that block's time, UTC"
      },
      "block_number": {
       "type": "number",
       "description": "last block at or before that time"
      },
      "latest_block": {
       "type": "number",
       "description": "current chain tip"
      },
      "requested_time": {
       "type": "string",
       "description": "the time asked for, UTC"
      },
      "next_block_number": {
       "type": [
        "number",
        "null"
       ],
       "description": "the following block"
      },
      "seconds_before
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/saylor-innovations-data-desk-block-at-time-7ecaa3e6/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)
