{"checked_at":"2026-08-10T14:17:41.876Z","reference":1356693,"spark_consensus":10,"spark_sethash_consensus":"Qy6/8M61ix6Ct2b0xQTHAU3ifxJNCBHeDi5eJ5sxvaM=","anonset_checked_at":"2026-08-10T14:15:04.707Z","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":1356693,"latency_ms":267,"version":"ElectrumX 1.19.0","spark_latest_coin_id":10,"tls_valid_to":"2026-09-29T01:06:49.000Z","tls_days_left":49,"error":null,"lag":0,"spark_consistent":true,"anonset":{"ok":true,"ms":79391,"coins":23565,"mb":32,"setHash":"Qy6/8M61ix6Ct2b0xQTHAU3ifxJNCBHeDi5eJ5sxvaM=","group":10,"error":null,"at":"2026-08-10T14:07:42.179Z","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":1356693,"latency_ms":153,"version":"ElectrumX 1.19.0","spark_latest_coin_id":10,"tls_valid_to":"2026-09-27T01:38:57.000Z","tls_days_left":47,"error":null,"lag":0,"spark_consistent":true,"anonset":{"ok":true,"ms":79033,"coins":23565,"mb":32,"setHash":"Qy6/8M61ix6Ct2b0xQTHAU3ifxJNCBHeDi5eJ5sxvaM=","group":10,"error":null,"at":"2026-08-10T14:09:01.817Z","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":1356693,"latency_ms":577,"version":"ElectrumX 1.19.0","spark_latest_coin_id":10,"tls_valid_to":"2026-09-27T01:35:28.000Z","tls_days_left":47,"error":null,"lag":0,"spark_consistent":true,"anonset":{"ok":true,"ms":78724,"coins":23565,"mb":32,"setHash":"Qy6/8M61ix6Ct2b0xQTHAU3ifxJNCBHeDi5eJ5sxvaM=","group":10,"error":null,"at":"2026-08-10T14:10:21.116Z","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":1356693,"latency_ms":827,"version":"ElectrumX 1.19.0","spark_latest_coin_id":10,"tls_valid_to":"2026-10-29T02:35:25.000Z","tls_days_left":79,"error":null,"lag":0,"spark_consistent":true,"anonset":{"ok":true,"ms":78600,"coins":23565,"mb":32,"setHash":"Qy6/8M61ix6Ct2b0xQTHAU3ifxJNCBHeDi5eJ5sxvaM=","group":10,"error":null,"at":"2026-08-10T14:11:40.420Z","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":1356693,"latency_ms":560,"version":"ElectrumX 1.19.0","spark_latest_coin_id":10,"tls_valid_to":"2026-10-16T10:37:01.000Z","tls_days_left":66,"error":null,"lag":0,"spark_consistent":true,"anonset":{"ok":true,"ms":78229,"coins":23565,"mb":32,"setHash":"Qy6/8M61ix6Ct2b0xQTHAU3ifxJNCBHeDi5eJ5sxvaM=","group":10,"error":null,"at":"2026-08-10T14:12:59.988Z","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":1356693,"latency_ms":577,"version":"ElectrumX 1.16.0","spark_latest_coin_id":10,"tls_valid_to":"2026-10-11T13:14:02.000Z","tls_days_left":61,"error":null,"lag":0,"spark_consistent":true,"anonset":{"ok":true,"ms":45288,"coins":23565,"mb":24.12,"setHash":"Qy6/8M61ix6Ct2b0xQTHAU3ifxJNCBHeDi5eJ5sxvaM=","group":10,"error":null,"at":"2026-08-10T14:14:18.816Z","source":"live","consistent":true},"status_reasons":[],"status":"green"}],"summary":{"total":6,"green":6,"yellow":0,"red":0},"stats":{"avg_latency":494,"median_latency":569,"probe_rtt_yellow_threshold_ms":5000,"fastest":153,"slowest":827,"max_lag":0,"reachable":6,"spark_group":10,"anonset_mb":30.69,"anonset_coins":23565,"anonset_ms":78662,"anonset_slow_threshold_ms":137659,"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"]}}}