{"adoption": {"forks": 161, "observed_at": "2026-08-28T04:03:20.707227+00:00", "stars": 1041}, "canonical_url": "https://ross.abutalabs.com/products/satellite", "card": {"archived": false, "artifact_type": "application", "description": "Blockstream Satellite", "domain": ["blockchain", "networking", "self-hosted", "privacy"], "enriched": true, "function": ["networking", "cli", "gui", "configuration-management", "developer-tools"], "health_score": 83, "homepage": "https://blockstream.github.io/satellite/", "language": "Python", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["Blockstream/satellite"], "name": "Blockstream/satellite", "platform": ["windows", "python", "cli", "self-hosted"], "pushed_at": "2026-06-02T15:02:30+00:00", "repo": "Blockstream/satellite", "stars": 1041, "tags": ["bitcoin", "satellite", "blockchain-broadcast", "lightning-network", "receiver-node", "satellite-api", "cryptocurrency", "linux", "macos"], "topics": [], "urls": [], "use_cases": ["run a bitcoin full node without internet using satellite only", "sync the bitcoin blockchain from scratch over satellite", "add satellite redundancy to an existing bitcoin node", "send encrypted messages worldwide via satellite paying with lightning", "sync a lightning node faster with gossip snapshots", "bootstrap bitcoin source code without touching the internet", "use bitcoin in areas without reliable internet"], "what_it_is": "Blockstream Satellite is a Python-based software suite (GUI and CLI) for setting up a receiver node that downloads the Bitcoin blockchain via free 24/7 satellite broadcasts. It handles hardware configuration, antenna alignment guidance, and runs Bitcoin Satellite and the Satellite API for blockchain sync and encrypted message transmission.", "when_to_avoid": ["you have no satellite coverage or no place to mount a dish", "you only need a normal bitcoin node with internet", "you want a software-only solution without buying hardware"], "when_to_choose": ["you want internet-independent bitcoin connectivity or censorship resistance", "you live where internet is unreliable but have satellite coverage", "you want to broadcast or receive data globally via satellite with lightning payments"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/satellite", "repo": "Blockstream/satellite", "role": "main", "score": 64}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.707227+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:02:49.564170+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b7f9809a570fcd2f8c9c3ad3e236f1272f160a212733f0eef83e41b086872672", "fetched_at": "2026-08-28T04:03:20.707227+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Blockstream/satellite"}, {"content_hash": "993d42ed95f984fcd67a586b89248be2bd0a348e8829ddfa7317a25001676281", "fetched_at": "2026-08-29T13:04:07.674514+00:00", "kind": "homepage", "missing": false, "url": "https://blockstream.github.io/satellite/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.707227+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:02:49.564170+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b7f9809a570fcd2f8c9c3ad3e236f1272f160a212733f0eef83e41b086872672", "fetched_at": "2026-08-28T04:03:20.707227+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Blockstream/satellite"}, {"content_hash": "993d42ed95f984fcd67a586b89248be2bd0a348e8829ddfa7317a25001676281", "fetched_at": "2026-08-29T13:04:07.674514+00:00", "kind": "homepage", "missing": false, "url": "https://blockstream.github.io/satellite/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:02:49.564170+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b7f9809a570fcd2f8c9c3ad3e236f1272f160a212733f0eef83e41b086872672", "fetched_at": "2026-08-28T04:03:20.707227+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Blockstream/satellite"}, {"content_hash": "993d42ed95f984fcd67a586b89248be2bd0a348e8829ddfa7317a25001676281", "fetched_at": "2026-08-29T13:04:07.674514+00:00", "kind": "homepage", "missing": false, "url": "https://blockstream.github.io/satellite/"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.707227+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.707227+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.707227+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:02:49.564170+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b7f9809a570fcd2f8c9c3ad3e236f1272f160a212733f0eef83e41b086872672", "fetched_at": "2026-08-28T04:03:20.707227+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Blockstream/satellite"}, {"content_hash": "993d42ed95f984fcd67a586b89248be2bd0a348e8829ddfa7317a25001676281", "fetched_at": "2026-08-29T13:04:07.674514+00:00", "kind": "homepage", "missing": false, "url": "https://blockstream.github.io/satellite/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.707227+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.707227+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:02:49.564170+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b7f9809a570fcd2f8c9c3ad3e236f1272f160a212733f0eef83e41b086872672", "fetched_at": "2026-08-28T04:03:20.707227+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Blockstream/satellite"}, {"content_hash": "993d42ed95f984fcd67a586b89248be2bd0a348e8829ddfa7317a25001676281", "fetched_at": "2026-08-29T13:04:07.674514+00:00", "kind": "homepage", "missing": false, "url": "https://blockstream.github.io/satellite/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.707227+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.707227+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.707227+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:02:49.564170+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b7f9809a570fcd2f8c9c3ad3e236f1272f160a212733f0eef83e41b086872672", "fetched_at": "2026-08-28T04:03:20.707227+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Blockstream/satellite"}, {"content_hash": "993d42ed95f984fcd67a586b89248be2bd0a348e8829ddfa7317a25001676281", "fetched_at": "2026-08-29T13:04:07.674514+00:00", "kind": "homepage", "missing": false, "url": "https://blockstream.github.io/satellite/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.707227+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.707227+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:02:49.564170+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b7f9809a570fcd2f8c9c3ad3e236f1272f160a212733f0eef83e41b086872672", "fetched_at": "2026-08-28T04:03:20.707227+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Blockstream/satellite"}, {"content_hash": "993d42ed95f984fcd67a586b89248be2bd0a348e8829ddfa7317a25001676281", "fetched_at": "2026-08-29T13:04:07.674514+00:00", "kind": "homepage", "missing": false, "url": "https://blockstream.github.io/satellite/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:02:49.564170+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b7f9809a570fcd2f8c9c3ad3e236f1272f160a212733f0eef83e41b086872672", "fetched_at": "2026-08-28T04:03:20.707227+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Blockstream/satellite"}, {"content_hash": "993d42ed95f984fcd67a586b89248be2bd0a348e8829ddfa7317a25001676281", "fetched_at": "2026-08-29T13:04:07.674514+00:00", "kind": "homepage", "missing": false, "url": "https://blockstream.github.io/satellite/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:02:49.564170+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b7f9809a570fcd2f8c9c3ad3e236f1272f160a212733f0eef83e41b086872672", "fetched_at": "2026-08-28T04:03:20.707227+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Blockstream/satellite"}, {"content_hash": "993d42ed95f984fcd67a586b89248be2bd0a348e8829ddfa7317a25001676281", "fetched_at": "2026-08-29T13:04:07.674514+00:00", "kind": "homepage", "missing": false, "url": "https://blockstream.github.io/satellite/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:02:49.564170+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b7f9809a570fcd2f8c9c3ad3e236f1272f160a212733f0eef83e41b086872672", "fetched_at": "2026-08-28T04:03:20.707227+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Blockstream/satellite"}, {"content_hash": "993d42ed95f984fcd67a586b89248be2bd0a348e8829ddfa7317a25001676281", "fetched_at": "2026-08-29T13:04:07.674514+00:00", "kind": "homepage", "missing": false, "url": "https://blockstream.github.io/satellite/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 85, "longevity": 100, "rhythm": 16}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3306, "days_push": 92, "days_rel": 482, "gap_med": 128, "n_releases_24m": 2}, "score": 64, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}