{"checked_at":"2026-09-24T04:28:01.018Z","reference":1382601,"spark_consensus":11,"spark_sethash_consensus":"9hesyyzUTJW4O52eFCwJ2OlJArdoE/0jrZIEeXcS61g=","anonset_checked_at":"2026-09-24T02:16:58.535Z","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":1382601,"latency_ms":300,"version":"ElectrumX 1.19.0","spark_latest_coin_id":11,"tls_valid_to":"2026-11-28T10:59:30.000Z","tls_days_left":65,"error":null,"lag":0,"spark_consistent":true,"anonset":{"ok":true,"ms":11405,"coins":13718,"mb":16,"setHash":"9hesyyzUTJW4O52eFCwJ2OlJArdoE/0jrZIEeXcS61g=","group":11,"error":null,"at":"2026-09-24T02:15:27.286Z","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":1382601,"latency_ms":190,"version":"ElectrumX 1.19.0","spark_latest_coin_id":11,"tls_valid_to":"2026-11-27T01:35:07.000Z","tls_days_left":63,"error":null,"lag":0,"spark_consistent":true,"anonset":{"ok":true,"ms":10413,"coins":13718,"mb":16,"setHash":"9hesyyzUTJW4O52eFCwJ2OlJArdoE/0jrZIEeXcS61g=","group":11,"error":null,"at":"2026-09-24T02:15:38.924Z","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":1382601,"latency_ms":615,"version":"ElectrumX 1.19.0","spark_latest_coin_id":11,"tls_valid_to":"2026-11-27T01:38:24.000Z","tls_days_left":63,"error":null,"lag":0,"spark_consistent":true,"anonset":{"ok":true,"ms":12148,"coins":13718,"mb":16,"setHash":"9hesyyzUTJW4O52eFCwJ2OlJArdoE/0jrZIEeXcS61g=","group":11,"error":null,"at":"2026-09-24T02:15:49.547Z","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":1382601,"latency_ms":807,"version":"ElectrumX 1.19.0","spark_latest_coin_id":11,"tls_valid_to":"2026-10-29T02:35:25.000Z","tls_days_left":34,"error":null,"lag":0,"spark_consistent":true,"anonset":{"ok":true,"ms":12575,"coins":13718,"mb":16,"setHash":"9hesyyzUTJW4O52eFCwJ2OlJArdoE/0jrZIEeXcS61g=","group":11,"error":null,"at":"2026-09-24T02:16:02.353Z","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":1382601,"latency_ms":616,"version":"ElectrumX 1.19.0","spark_latest_coin_id":11,"tls_valid_to":"2026-12-15T14:41:37.000Z","tls_days_left":82,"error":null,"lag":0,"spark_consistent":true,"anonset":{"ok":true,"ms":11003,"coins":13718,"mb":16,"setHash":"9hesyyzUTJW4O52eFCwJ2OlJArdoE/0jrZIEeXcS61g=","group":11,"error":null,"at":"2026-09-24T02:16:15.948Z","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":1382601,"latency_ms":622,"version":"ElectrumX 1.16.0","spark_latest_coin_id":11,"tls_valid_to":"2026-10-11T13:14:02.000Z","tls_days_left":17,"error":null,"lag":0,"spark_consistent":true,"anonset":{"ok":true,"ms":6214,"coins":13718,"mb":10.3,"setHash":"9hesyyzUTJW4O52eFCwJ2OlJArdoE/0jrZIEeXcS61g=","group":11,"error":null,"at":"2026-09-24T02:16:27.541Z","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":1382601,"latency_ms":292,"version":"ElectrumX 1.19.0","spark_latest_coin_id":11,"tls_valid_to":"2026-12-08T14:21:03.000Z","tls_days_left":75,"error":null,"lag":0,"spark_consistent":true,"anonset":{"ok":true,"ms":10362,"coins":13718,"mb":16,"setHash":"9hesyyzUTJW4O52eFCwJ2OlJArdoE/0jrZIEeXcS61g=","group":11,"error":null,"at":"2026-09-24T02:16:34.436Z","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":1382601,"latency_ms":621,"version":"ElectrumX 1.19.0","spark_latest_coin_id":11,"tls_valid_to":"2026-11-22T10:56:16.000Z","tls_days_left":59,"error":null,"lag":0,"spark_consistent":true,"anonset":{"ok":true,"ms":12780,"coins":13718,"mb":16,"setHash":"9hesyyzUTJW4O52eFCwJ2OlJArdoE/0jrZIEeXcS61g=","group":11,"error":null,"at":"2026-09-24T02:16:45.087Z","source":"live","consistent":true},"status_reasons":[],"status":"green"}],"summary":{"total":8,"green":8,"yellow":0,"red":0},"stats":{"avg_latency":508,"median_latency":616,"probe_rtt_yellow_threshold_ms":5000,"fastest":190,"slowest":807,"max_lag":0,"reachable":8,"spark_group":11,"anonset_mb":15.29,"anonset_coins":13718,"anonset_ms":11204,"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"]}}}