Developers
Status and Health
What the status page checks, what ok, degraded and down mean, and the health endpoint behind it.
Updated 2026-10-10
Overview
The status page at /status shows whether the services zkCodex depends on answer right now. It reads one public endpoint, GET /api/health, which checks everything at most once a minute and is cached for a minute, so opening the page never puts load on the networks or providers.
| State | Meaning |
|---|---|
| Operational | The service answers and is up to date. |
| Degraded | It answers but is slow, behind or limited: some pages may load slowly or show older data. |
| Down | It does not answer, is switched off or cannot be confirmed. The parts that depend on it are unavailable. |
What is checked
| Group | Component | Check |
|---|---|---|
| Core | Database | Answers a query, within 0.8 s for Operational |
| Core | XP indexer | Every network's indexer together: Down only when none runs |
| Networks | Public RPC | The network's public node returns its newest block, and that block is less than 10 minutes old |
| Networks | XP indexer | How far the network's XP indexer is behind the chain, in time: Degraded past 2 hours (7 for a quiet network whose next visit is booked or came due in the last 20 minutes), Down past 26 hours. A testnet is Degraded past 8 hours and Down past 72 |
| Data providers | Etherscan | One keyed request; Degraded when it throttles or does not answer in time, Down when it refuses the key or fails |
| Data providers | Blockscout API | One keyed REST request, which wallet history, contract pages and spender records depend on; same rules as Etherscan |
| Data providers | Blockscout JSON-RPC | One keyed request to Blockscout's node endpoint, where Token Approvals reads approval events; same rules. While it is Down, approval scans fall back to Etherscan or the network's own explorer where the network has one |
| Data providers | LI.FI | One token lookup |
| Data providers | Price data | DefiLlama's current ETH price |
| Features | Ask zkCodex | Switched on with its model configured; Degraded while a budget or the day's messages are used up. No question is sent to the model |
| Features | Testnet faucet | Open, with every open network's dispenser funded; Degraded when a network runs low or dry |
The networks listed are the ones with zkCodex contracts, where paid actions earn XP. Overall the site is Down only when the database is; any other problem makes it Degraded.
Health endpoint
GET /api/healthThe answer lists each component with its group, name and state; networks add the state of their public RPC and of their XP indexer (null when the network is not indexed). It never contains keys, URLs, addresses, error messages or counts. The status code is 503 while the overall state is down, so an uptime monitor can watch it without reading the body.
{
"status": "degraded",
"checkedAt": "2026-10-05T09:00:00.000Z",
"components": [
{ "id": "database", "group": "core", "name": "Database", "status": "ok" },
{ "id": "network:base", "group": "networks", "name": "Base", "status": "ok", "rpc": "ok", "indexer": "ok", "testnet": false },
{ "id": "lifi", "group": "providers", "name": "LI.FI", "status": "degraded" }
]
}