# Freshness · API reference · Femtos

> Head and lag of each layer, measured now. GET /v1/status on Elysium, HyperCore and HyperEVM: parameters, response fields and a live call per layer.

- Base URL: `https://api.femtos.xyz/v1` (REST) · `wss://api.femtos.xyz/v1/ws` (WebSocket) · MCP: `https://api.femtos.xyz/mcp`
- Auth: `Authorization: Bearer $FEMTOS_KEY`. Free key: https://femtos.xyz/account/new (browser), or with
  no browser: `GET https://femtos.xyz/accounts/agent/challenge`, solve its proof of work, then `POST https://femtos.xyz/accounts/agent/signup`
  (https://femtos.xyz/agents.md#agent-onboarding)
- Decimals are exact strings, times Unix milliseconds, addresses lowercase `0x`
- Whole API in one file: https://femtos.xyz/agents.md · OpenAPI: https://api.femtos.xyz/v1/openapi.json · Index: https://femtos.xyz/llms.txt
- Page with live calls: https://femtos.xyz/reference/status

## Freshness — GET `/v1/status`

Head and lag of each layer, measured now.

Layers: Elysium, HyperCore, HyperEVM.
Page with live calls: https://femtos.xyz/reference/status?layer=<elysium|hypercore|hyperevm>

Elysium, HyperCore, HyperEVM:

```bash
curl -H "Authorization: Bearer $FEMTOS_KEY" "https://api.femtos.xyz/v1/status"
```

| Field | Type | Meaning |
|---|---|---|
| `layers.hypercore` | object | {state: live\|stale, head, headTime, lagMs} |
| `layers.hyperevm` | object | {state: syncing\|live, head, headTime, lagMs, chainHead?, blocksBehind?, behindMs?, clock?, reason?}: indexed head of indexer_hyperevm vs nanoreth's head (> 300 blocks behind = syncing; without a node feed, headTime older than 5 min = syncing). chainHead, blocksBehind, behindMs, clock: freshness against the node's own head, pushed by newHeads: blocksBehind 0 and behindMs 0 = every block the node announced is indexed; else behindMs = how long block head+1 has been waiting since the node announced it (clock node), or since its block time when our feed did not see it (clock block). Absent without a live node feed |
| `layers.elysium` | object | {state, network: mainnet, head, headTime, lagMs, chainHead?, blocksBehind?, behindMs?, clock?}: lagMs = now - block time (whole seconds). Elysium mainnet makes no empty block and can go minutes without one: lagMs then grows while state stays live and behindMs 0 (every block the node announced is indexed); how far behind = behindMs, not lagMs. chainHead, blocksBehind, behindMs, clock: freshness against the node's own head, pushed by newHeads: blocksBehind 0 and behindMs 0 = every block the node announced is indexed; else behindMs = how long block head+1 has been waiting since the node announced it (clock node), or since its block time when our feed did not see it (clock block). Absent without a live node feed |
| `stream` | object | {connected, lagMs, messages, clients, subscriptions, slowClientsDropped} |
| `flows` | object | {connected, lagMs, messages} |
| `bridges` | object | {state: ok\|loading, source: materialized\|views, settledUntil, lagMs, computedAt, evm_to_core, core_to_evm: {legs, matched, coverage, unmatched: {<reason>: n}, p50Ms, p99Ms}}: HyperCore <> HyperEVM matching over the whole history, as GET /api/bridges/coverage (last computed value, refreshed in the background) |
| `serverTime` | ms | Server time |

## Related (Chain & reference)

- [Blocks stream](https://femtos.xyz/reference/ws/blocks.md) `WS elysium.blocks · hyperevm.blocks`: Each new HyperEVM block header, small and big blocks, from our node. (Elysium, HyperEVM)
- [Transaction](https://femtos.xyz/reference/tx.md) `GET /v1/tx/{hash}`: One transaction: status, gas, decoded transfers, swaps and liquidity, bridge legs and journey. (Elysium, HyperEVM)
- [Elysium RPC](https://femtos.xyz/reference/rpc.md) `POST /v1/elysium/rpc`: Free public Elysium mainnet RPC by Femtos (chain 99901), no key, read only (no transaction sending), for wallets and dapps, not for indexing (use the Femtos API for history): per IP 5 requests a second and 60 a minute, batches of 5, eth_getLogs over 1,000 blocks at most, state of the last 128 blocks only. (Elysium)
- [Stream stats](https://femtos.xyz/reference/ws/stats.md) `WS stats`: Our HyperCore stream health, once a second. (HyperCore)
- [Check your key](https://femtos.xyz/reference/whoami.md) `GET /v1/whoami`: Answers the name your key is registered under, its tier, billing state and the limits in force. (Elysium, HyperCore, HyperEVM)
- [OpenAPI document](https://femtos.xyz/reference/openapi.md) `GET /v1/openapi.json`: The OpenAPI 3.1 contract of every REST call, public. (Elysium, HyperCore, HyperEVM)

Every page: https://femtos.xyz/reference.md
