{"checked_at":"2026-09-27T07:49:14.374Z","reference":1384430,"spark_consensus":11,"spark_sethash_consensus":"zrdwoQbd7KA339dp+4LMNQCMmL6WQOfqwAKWXANa1Ls=","anonset_checked_at":"2026-09-27T07:47:54.285Z","endpoints":[{"id":"firo-core-0","name":"Firo Core electrumx","operator":"Firo Core","host":"electrumx.firo.org","port":50002,"used_by":["Campfire","Stack Wallet","Electrum-Firo"],"ok":true,"height":1384430,"latency_ms":261,"version":"ElectrumX 1.19.0","spark_latest_coin_id":11,"tls_valid_to":"2026-11-28T10:59:30.000Z","tls_days_left":62,"error":null,"lag":0,"spark_consistent":true,"anonset":{"ok":true,"ms":10865,"coins":14932,"mb":16,"setHash":"zrdwoQbd7KA339dp+4LMNQCMmL6WQOfqwAKWXANa1Ls=","group":11,"error":null,"at":"2026-09-27T07:46:25.348Z","source":"live","consistent":true},"status_reasons":[],"status":"green"},{"id":"firo-core-1","name":"Firo Core electrumx01","operator":"Firo Core","host":"electrumx01.firo.org","port":50002,"used_by":["Campfire","Stack Wallet","Electrum-Firo"],"ok":true,"height":1384430,"latency_ms":175,"version":"ElectrumX 1.19.0","spark_latest_coin_id":11,"tls_valid_to":"2026-11-27T01:35:07.000Z","tls_days_left":60,"error":null,"lag":0,"spark_consistent":true,"anonset":{"ok":true,"ms":10726,"coins":14932,"mb":16,"setHash":"zrdwoQbd7KA339dp+4LMNQCMmL6WQOfqwAKWXANa1Ls=","group":11,"error":null,"at":"2026-09-27T07:46:36.506Z","source":"live","consistent":true},"status_reasons":[],"status":"green"},{"id":"firo-core-2","name":"Firo Core electrumx02","operator":"Firo Core","host":"electrumx02.firo.org","port":50002,"used_by":["Campfire","Stack Wallet","Electrum-Firo"],"ok":true,"height":1384430,"latency_ms":623,"version":"ElectrumX 1.19.0","spark_latest_coin_id":11,"tls_valid_to":"2026-11-27T01:38:24.000Z","tls_days_left":60,"error":null,"lag":0,"spark_consistent":true,"anonset":{"ok":true,"ms":11316,"coins":14932,"mb":16,"setHash":"zrdwoQbd7KA339dp+4LMNQCMmL6WQOfqwAKWXANa1Ls=","group":11,"error":null,"at":"2026-09-27T07:46:47.409Z","source":"live","consistent":true},"status_reasons":[],"status":"green"},{"id":"firo-core-3","name":"Firo Core electrumx03","operator":"Firo Core","host":"electrumx03.firo.org","port":50002,"used_by":["Campfire","Stack Wallet","Electrum-Firo"],"ok":true,"height":1384430,"latency_ms":800,"version":"ElectrumX 1.19.0","spark_latest_coin_id":11,"tls_valid_to":"2026-10-29T02:35:25.000Z","tls_days_left":31,"error":null,"lag":0,"spark_consistent":true,"anonset":{"ok":true,"ms":11381,"coins":14932,"mb":16,"setHash":"zrdwoQbd7KA339dp+4LMNQCMmL6WQOfqwAKWXANa1Ls=","group":11,"error":null,"at":"2026-09-27T07:46:59.307Z","source":"live","consistent":true},"status_reasons":[],"status":"green"},{"id":"stackwallet","name":"Stack Wallet","operator":"Cypher Stack","host":"firo.stackwallet.com","port":50002,"used_by":["Stack Wallet","Campfire","Electrum-Firo"],"ok":true,"height":1384430,"latency_ms":663,"version":"ElectrumX 1.19.0","spark_latest_coin_id":11,"tls_valid_to":"2026-12-15T14:41:37.000Z","tls_days_left":79,"error":null,"lag":0,"spark_consistent":true,"anonset":{"ok":true,"ms":11002,"coins":14932,"mb":16,"setHash":"zrdwoQbd7KA339dp+4LMNQCMmL6WQOfqwAKWXANa1Ls=","group":11,"error":null,"at":"2026-09-27T07:47:11.494Z","source":"live","consistent":true},"status_reasons":[],"status":"green"},{"id":"mathnodes","name":"MathNodes","operator":"MathNodes","host":"firo.mathnodes.com","port":50002,"used_by":["Electrum-Firo","Campfire","Stack Wallet"],"ok":true,"height":1384430,"latency_ms":629,"version":"ElectrumX 1.16.0","spark_latest_coin_id":11,"tls_valid_to":"2026-10-11T13:14:02.000Z","tls_days_left":14,"error":null,"lag":0,"spark_consistent":true,"anonset":{"ok":true,"ms":6744,"coins":14932,"mb":11.23,"setHash":"zrdwoQbd7KA339dp+4LMNQCMmL6WQOfqwAKWXANa1Ls=","group":11,"error":null,"at":"2026-09-27T07:47:23.086Z","source":"live","consistent":true},"status_reasons":[],"status":"green"},{"id":"firoblocks","name":"FiroBlocks ElectrumX","operator":"FiroBlocks","host":"electrumx.firoblocks.app","port":50002,"used_by":[],"ok":true,"height":1384430,"latency_ms":289,"version":"ElectrumX 1.19.0","spark_latest_coin_id":11,"tls_valid_to":"2026-12-08T14:21:03.000Z","tls_days_left":72,"error":null,"lag":0,"spark_consistent":true,"anonset":{"ok":true,"ms":10203,"coins":14932,"mb":16,"setHash":"zrdwoQbd7KA339dp+4LMNQCMmL6WQOfqwAKWXANa1Ls=","group":11,"error":null,"at":"2026-09-27T07:47:30.459Z","source":"live","consistent":true},"status_reasons":[],"status":"green"},{"id":"carover0","name":"Carover0 ElectrumX","operator":"Carover0","host":"carover0.xyz","port":50002,"used_by":[],"ok":true,"height":1384430,"latency_ms":1096,"version":"ElectrumX 1.19.0","spark_latest_coin_id":11,"tls_valid_to":"2026-11-22T10:56:16.000Z","tls_days_left":56,"error":null,"lag":0,"spark_consistent":true,"anonset":{"ok":true,"ms":12689,"coins":14932,"mb":16,"setHash":"zrdwoQbd7KA339dp+4LMNQCMmL6WQOfqwAKWXANa1Ls=","group":11,"error":null,"at":"2026-09-27T07:47:40.952Z","source":"live","consistent":true},"status_reasons":[],"status":"green"}],"summary":{"total":8,"green":8,"yellow":0,"red":0},"stats":{"avg_latency":567,"median_latency":626,"probe_rtt_yellow_threshold_ms":5000,"fastest":175,"slowest":1096,"max_lag":0,"reachable":8,"spark_group":11,"anonset_mb":15.4,"anonset_coins":14932,"anonset_ms":10934,"anonset_slow_threshold_ms":20000,"anonset_slow":0},"polling":false,"anonset_source":"live_refreshing","anonset_refreshing":true,"meta":{"purpose":"Shared fleet telemetry for public Firo Electrum backends: tip freshness, Spark coin group and setHash consistency, and anonymity set fetch health.","audience":["firo_community","wallet_and_mobile_developers","electrum_operators","core_and_tooling"],"complements":"Wallet Electrum clients talk to one host. This API watches the curated public fleet so the Firo community can share tip and Spark health without each app re downloading a full anon set for monitoring.","not_for":["in_wallet_server_picker","replace_wallet_electrum_or_spark_sdk","user_device_rtt_ranking","authoritative_chain_state"],"docs":"/api/docs","spark":"/api/spark","ci":"/api/ci","latency_note":"latency_ms is probe RTT from this monitor only. Secondary to lag and Spark consistency. Not user device RTT.","probe_region":"single region monitor host","probes":{"light":["server.version","blockchain.headers.subscribe","spark.getsparklatestcoinid"],"heavy":["spark.getsparkanonymityset"]},"status_rules":{"green_max_lag":2,"yellow_probe_rtt_ms":"fleet-relative: max(5000, 2.5× median probe RTT)","red_lag":100,"yellow_tls_days_left":14,"red_tls_expired":true,"note":"green requires Spark coin id present and matching; setHash match when anonset measurement exists. setHash mismatch alone yields yellow even at lag 0. TLS cert <14 days → yellow; expired → red."},"history":{"route":"/api/history","storage":"sqlite on always-on server (data/history.sqlite)","uptime_definition":"percent of samples with status=green (strict)"},"vs_height_only":{"height_only":["ok","height","lag"],"spark_extra":["spark_latest_coin_id","spark_consistent","anonset.*","spark_sethash_consensus"]}}}