{"adoption": {"forks": 558, "observed_at": "2026-08-28T04:04:35.335260+00:00", "stars": 1389}, "canonical_url": "https://ross.abutalabs.com/products/electrs", "card": {"archived": false, "artifact_type": "application", "description": "An efficient re-implementation of Electrum Server in Rust", "domain": ["blockchain", "self-hosted", "privacy", "databases"], "enriched": true, "function": ["search-engine", "database", "http-server", "self-hosted"], "health_score": 96, "homepage": null, "language": "Rust", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["romanz/electrs"], "name": "romanz/electrs", "platform": ["rust", "self-hosted", "cli"], "pushed_at": "2026-08-16T12:42:36+00:00", "repo": "romanz/electrs", "stars": 1389, "tags": ["bitcoin", "electrum-server", "blockchain-indexer", "rocksdb", "wallet", "full-node", "cryptocurrency", "linux", "macos"], "topics": ["bitcoin", "rust", "indexer", "electrum", "electrum-server", "rocksdb"], "urls": [], "use_cases": ["self-host an Electrum server for my Bitcoin wallet", "index the Bitcoin blockchain for fast balance queries", "run a private Electrum server without leaking my addresses to third parties", "track wallet balances and transaction history in real time via Electrum wallet", "serve Electrum protocol queries from my own full node"], "what_it_is": "Electrs is an efficient Electrum server re-implementation written in Rust that indexes the entire Bitcoin blockchain using RocksDB. It lets users self-host an Electrum server on hardware comparable to a full node, enabling fast wallet balance and transaction history queries while preserving privacy.", "when_to_avoid": ["you want to run a large public Electrum server exposed to the internet (use the Blockstream electrs fork instead)", "you need to serve many concurrent users at scale", "you cannot run a Bitcoin full node alongside it"], "when_to_choose": ["you want a privacy-preserving personal or small-scale (family/friends) Electrum server", "you have a Bitcoin full node and modest extra hardware resources", "you need fast blockchain synchronization and low index storage overhead", "you prefer a resource-efficient Rust implementation over ElectrumX"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/electrs", "repo": "romanz/electrs", "role": "main", "score": 85}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:35.335260+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:39:43.494225+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8845fc3952181ad819b39767f6b9ac8b722290e1b9ab9c815da13c5d1c0f691", "fetched_at": "2026-08-28T04:04:35.335260+00:00", "kind": "readme", "missing": false, "url": "https://github.com/romanz/electrs"}, {"content_hash": "dbfc74c77b09ef313cb01d5219c1427b8187661d9b2b8c4bcfc4675be5089a39", "fetched_at": "2026-08-29T11:54:53.180264+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/electrs"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:35.335260+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:39:43.494225+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8845fc3952181ad819b39767f6b9ac8b722290e1b9ab9c815da13c5d1c0f691", "fetched_at": "2026-08-28T04:04:35.335260+00:00", "kind": "readme", "missing": false, "url": "https://github.com/romanz/electrs"}, {"content_hash": "dbfc74c77b09ef313cb01d5219c1427b8187661d9b2b8c4bcfc4675be5089a39", "fetched_at": "2026-08-29T11:54:53.180264+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/electrs"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:39:43.494225+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8845fc3952181ad819b39767f6b9ac8b722290e1b9ab9c815da13c5d1c0f691", "fetched_at": "2026-08-28T04:04:35.335260+00:00", "kind": "readme", "missing": false, "url": "https://github.com/romanz/electrs"}, {"content_hash": "dbfc74c77b09ef313cb01d5219c1427b8187661d9b2b8c4bcfc4675be5089a39", "fetched_at": "2026-08-29T11:54:53.180264+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/electrs"}], "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:04:35.335260+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:35.335260+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:35.335260+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:39:43.494225+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8845fc3952181ad819b39767f6b9ac8b722290e1b9ab9c815da13c5d1c0f691", "fetched_at": "2026-08-28T04:04:35.335260+00:00", "kind": "readme", "missing": false, "url": "https://github.com/romanz/electrs"}, {"content_hash": "dbfc74c77b09ef313cb01d5219c1427b8187661d9b2b8c4bcfc4675be5089a39", "fetched_at": "2026-08-29T11:54:53.180264+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/electrs"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:35.335260+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:35.335260+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:39:43.494225+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8845fc3952181ad819b39767f6b9ac8b722290e1b9ab9c815da13c5d1c0f691", "fetched_at": "2026-08-28T04:04:35.335260+00:00", "kind": "readme", "missing": false, "url": "https://github.com/romanz/electrs"}, {"content_hash": "dbfc74c77b09ef313cb01d5219c1427b8187661d9b2b8c4bcfc4675be5089a39", "fetched_at": "2026-08-29T11:54:53.180264+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/electrs"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:35.335260+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:35.335260+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:35.335260+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:39:43.494225+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8845fc3952181ad819b39767f6b9ac8b722290e1b9ab9c815da13c5d1c0f691", "fetched_at": "2026-08-28T04:04:35.335260+00:00", "kind": "readme", "missing": false, "url": "https://github.com/romanz/electrs"}, {"content_hash": "dbfc74c77b09ef313cb01d5219c1427b8187661d9b2b8c4bcfc4675be5089a39", "fetched_at": "2026-08-29T11:54:53.180264+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/electrs"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:35.335260+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:35.335260+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:39:43.494225+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8845fc3952181ad819b39767f6b9ac8b722290e1b9ab9c815da13c5d1c0f691", "fetched_at": "2026-08-28T04:04:35.335260+00:00", "kind": "readme", "missing": false, "url": "https://github.com/romanz/electrs"}, {"content_hash": "dbfc74c77b09ef313cb01d5219c1427b8187661d9b2b8c4bcfc4675be5089a39", "fetched_at": "2026-08-29T11:54:53.180264+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/electrs"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:39:43.494225+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8845fc3952181ad819b39767f6b9ac8b722290e1b9ab9c815da13c5d1c0f691", "fetched_at": "2026-08-28T04:04:35.335260+00:00", "kind": "readme", "missing": false, "url": "https://github.com/romanz/electrs"}, {"content_hash": "dbfc74c77b09ef313cb01d5219c1427b8187661d9b2b8c4bcfc4675be5089a39", "fetched_at": "2026-08-29T11:54:53.180264+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/electrs"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:39:43.494225+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8845fc3952181ad819b39767f6b9ac8b722290e1b9ab9c815da13c5d1c0f691", "fetched_at": "2026-08-28T04:04:35.335260+00:00", "kind": "readme", "missing": false, "url": "https://github.com/romanz/electrs"}, {"content_hash": "dbfc74c77b09ef313cb01d5219c1427b8187661d9b2b8c4bcfc4675be5089a39", "fetched_at": "2026-08-29T11:54:53.180264+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/electrs"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:39:43.494225+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8845fc3952181ad819b39767f6b9ac8b722290e1b9ab9c815da13c5d1c0f691", "fetched_at": "2026-08-28T04:04:35.335260+00:00", "kind": "readme", "missing": false, "url": "https://github.com/romanz/electrs"}, {"content_hash": "dbfc74c77b09ef313cb01d5219c1427b8187661d9b2b8c4bcfc4675be5089a39", "fetched_at": "2026-08-29T11:54:53.180264+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/electrs"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 100, "rhythm": 59}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3069, "days_push": 17, "days_rel": 192, "gap_med": 75.0, "n_releases_24m": 7}, "score": 85, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}