System Status
The status page shows the live health of every part of the protocol: the five Clarity contracts, the public API endpoints, and the upstream Hiro and Stacks dependencies. Checks run in your browser and refresh automatically, with a server-side snapshot also available as JSON and as an embeddable badge.
What is monitored
- Smart contracts: each of the five contracts (thesislock, thesislock-batch, thesislock-registry, thesislock-proof, and thesislock-groups) is checked by fetching its on-chain source from the Hiro node RPC.
- API endpoints: the health, verify, search, stats, and badge endpoints are probed for a successful response.
- Dependencies: the Hiro Stacks API and the Stacks network node are pinged to surface upstream problems separately from our own.
Status levels
Each service is classified from a single timed request. A fast success is operational, a slow success is degraded, and a timeout, network error, or non-2xx response is down. The banner at the top rolls these up into all systems operational, a partial outage, or a major outage (a downed dependency or at least half the services down).
Uptime and history
The live view refreshes every minute. Underneath it, a history point is sampled at most once every five minutes and kept for 24 hours in your browser, which drives the per-service uptime percentage and the bar of recent checks. Because history is stored locally, it is private to your device; the server keeps only a best-effort recent snapshot.
Incidents
When monitoring detects a service is down, it opens an incident automatically and resolves it once the service recovers, with a severity derived from what failed. Incidents can also be tracked by hand and move through the usual stages: investigating, identified, monitoring, and resolved. The timeline shows active incidents first, then resolved ones from the last seven days.
Status API
A server-side snapshot of all services is available as JSON, with a short edge cache so it is cheap to poll:
curl https://thesis-lock.vercel.app/api/statusGET /api/statusreturns{ overall, services, timestamp }.GET /api/status/historyreturns the recent per-service history this server instance has observed.GET /api/status/badgereturns an SVG badge of the overall status for embedding.
Status badge
Embed the live status badge in any README or page the same way as the verification badge:
