Skip to content

Monero LWS Observatory — Public LWS Health Monitoring

Summary

Monero LWS Observatory is a public tip-freshness dashboard 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 (27 August 2026)

/api/ci lws_ok false (no operator returned blockchain_height)
Operators listed 1 (Monero Web) — typically yellow probe_blocked
Tip plumbing Canary + 3 mirrors — pipeline only, not wallet backends
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.

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 Green / yellow / red — lag first; 401/403/429 = yellow probe_blocked
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)

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_ok stays false until an operator returns height)
  • Directory + opt-in checklist + wallet-defaults compare + open-work honesty strip
  • Full JSON API, scorecard, diagnose drawer, 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/ci gates (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 / .onion probing 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 (GitHub mirror for deploy).


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 October 2026 — if not fully funded or completed by then, remaining escrowed funds release per CCS rules.

Edited by PANAGIOTIS POLLIS

Merge request reports

Loading