Monero LWS Observatory — Public LWS Health Monitoring
Summary
Monero LWS Observatory is a public tip-freshness tip sheet and JSON API for curated Monero Light Wallet Server (LWS) hosts. It answers one question:
Is this operator LWS fresh vs the chain tip — or is sync failing somewhere else?
It probes opt-in hosts with public POST /get_version (blockchain_height), plus optional TLS / CORS / privacy-safe get_random_outs. No view keys. No wallet traffic. No port scanning.
This is the LWS layer light wallets actually use — not another monerod remote-node list.
| Live preview | https://monero-lws-observatory.vercel.app |
| Operator directory |
https://monero-lws-observatory.vercel.app/directory · /api/directory.json
|
| Opt-in checklist | https://monero-lws-observatory.vercel.app/onboard |
| Open work | https://monero-lws-observatory.vercel.app/roadmap |
| Source (MIT) | https://gitlab.com/panformonero/monero-lws-observatory |
| Verify | https://gitlab.com/panformonero/monero-lws-observatory/-/blob/main/docs/VERIFY.md |
| Integrator CI | https://gitlab.com/panformonero/monero-lws-observatory/-/blob/main/docs/INTEGRATOR_CI.md |
Payment: 3 XMR on M1 acceptance · 3 XMR on M2 acceptance (6 XMR total). Standard CCS after-milestone disbursement — not prepaid.
Live status (18 September 2026)
/api/ci lws_ok
|
false (no operator returned blockchain_height) |
/api/ci pipeline_ok
|
true (tip plumbing measurable) |
| Operators listed |
1 (Monero Web) — typically degraded probe_blocked (HTTP 401/403/429) |
| Operators with height | 0 / 1 |
| Tip plumbing | Canary + 3 mirrors — pipeline only, not wallet backends |
| Measurable tip targets | 4 (operators + plumbing that return height) |
| Hosting | On-demand preview (warm history ring, not durable multi-day storage) |
Funding buys operations, not a redesign: always-on VPS + custom domain + durable history + growing the opt-in operator set toward 5–8 + alerts. The live preview already probes, classifies, and publishes JSON; Overview stays data-first (operator matrix first; compact /api/ci; How-to-read collapsed).
curl -sS https://monero-lws-observatory.vercel.app/api/ci \
| jq '{ok,lws_ok,pipeline_ok,operator_total,operator_responding,measurable_total,reasons}'
Problem
Light wallets sync through LWS, not directly through monerod. When sync stalls, it is hard to tell whether the LWS, the network tip, or the wallet is at fault.
Public remote-node lists cover monerod. They do not cover LWS. Stack Exchange #14557 still asks for a maintained public list. After MyMonero’s shutdown, more wallets ship bring-your-own LWS defaults — so a neutral tip-freshness signal matters more, not less.
What the service provides
| Opt-in registry | Operator-approved LWS URLs only — no port scanning |
| Public directory |
/directory + /api/directory.json (operators only; SE #14557 shape) |
| Probes |
POST /get_version primary; TLS / CORS / get_random_outs optional |
| Lag vs tip | Multi-source reference height; reproducible with curl |
| Status |
Fresh / degraded / down (lag first; HTTP 401/403/429 = degraded probe_blocked, not hard-down) |
| CI / badge |
/api/ci (lws_ok for operators, pipeline_ok for plumbing) + SVG badge |
| Operator path |
/onboard checklist + POST /api/check (pass does not auto-list) |
| Open work |
/roadmap — CCS reviewer 60s path + honest progress strip |
Who benefits
| Audience | Benefit |
|---|---|
| Wallet developers | Shared signal when choosing or debugging a default LWS |
| LWS operators | Early warning when the host lags or blocks automated probes |
| Integrators | Reproducible /api/ci + badge examples |
| Light wallet users | Indirect — fewer silent sync failures as operators act on shared data |
What already ships (pre-funding)
A working preview is live before any CCS spend:
- Fleet: 1 opt-in operator (often
probe_blocked) + canary + 3 tip mirrors (lws_okstays false until an operator returns height) - Directory + opt-in checklist + wallet-defaults compare + open-work honesty strip
- Full JSON API, scorecard, diagnose drawer, session trends, integrator CI docs
- Empty attestation / allowlist-success slots until real public opt-ins exist
Still needs funding (M1–M2): always-on hosting, durable multi-day history, 5–8 measurable operators, webhooks, Tor probing. No invented LWS hosts.
Milestones
M1 — Production v1 · 3 XMR · weeks 1–2
- Always-on poller + API on VPS with custom domain
- Durable history (lag / uptime / incidents)
- Grow opt-in operators toward 5–8 (mirrors do not count)
- Multi-day charts on durable data
- Documented, reproducible
/api/cigates (docs/VERIFY.md) - 12 months hosting + maintenance begins
Interim progress: ≥1 operator returns blockchain_height matching manual curl within ±1 block.
Acceptance: A wallet developer or LWS operator confirms ≥3 operator endpoints match curl -X POST …/get_version within ±1 block; lws_ok / pipeline_ok documented and reproducible.
M2 — Operator tooling · 3 XMR · weeks 3–4
- Webhooks (Discord / HTTP) for lag, downtime, height drops
- 30-day retention + JSON/CSV export
- Self-host docs; expand submission checklist from
/onboard - Tor /
.onionprobing where operators provide URLs
Acceptance: An operator configures alerts and confirms delivery within one poll cycle.
Budget
| Milestone | When paid | XMR |
|---|---|---|
| M1 — Production v1 | On acceptance | 3 |
| M2 — Operator tooling | On acceptance | 3 |
| Total | 6 |
Illustrative inside M1: small VPS + domain for 12 months is a low fixed cost; most of M1 is engineering for durable storage, charts, outreach, and ops. Work is MIT on GitLab
Out of scope
- Operating or competing with monero-lws
- Port scanning; collecting view keys or wallet traffic
- Block explorer / P2P monitoring
- Replacing self-hosted LWS for privacy
- Treating tip mirrors as wallet backends
- Inventing public LWS URLs without written opt-in
Sustainability
- Registry is version-controlled JSON; stack is MIT — anyone can redeploy
- 12-month hosting in M1 is finite; no open-ended recurring ask here
- Portable exports in M2 (JSON/CSV)
Milestone reports as comments on this MR.
Expiration: 7 January 2027 — if not fully funded or completed by then, remaining escrowed funds release per CCS rules.