{"adoption": {"forks": 340, "observed_at": "2026-08-28T04:04:06.806188+00:00", "stars": 1244}, "canonical_url": "https://ross.abutalabs.com/products/seedsigner", "card": {"archived": false, "artifact_type": "application", "description": "Use an air-gapped Raspberry Pi Zero to sign for Bitcoin transactions! (and do other cool stuff)", "domain": ["security", "privacy", "self-hosted", "hardware"], "enriched": true, "function": ["cryptography", "security", "gui", "embedded"], "health_score": 99, "homepage": null, "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["SeedSigner/seedsigner"], "name": "SeedSigner/seedsigner", "platform": ["embedded", "python"], "pushed_at": "2026-08-23T02:21:37+00:00", "repo": "SeedSigner/seedsigner", "stars": 1244, "tags": ["bitcoin", "hardware-wallet", "air-gapped", "signing-device", "raspberry-pi", "multisig", "seed-phrase", "bip39", "qr-code", "stateless", "cryptocurrency", "linux"], "topics": [], "urls": [], "use_cases": ["build a cheap air-gapped bitcoin hardware wallet", "sign bitcoin transactions offline via QR codes", "generate a BIP39 seed phrase from dice rolls", "set up a multisignature bitcoin wallet", "transcribe a seed phrase into a printable SeedQR", "store bitcoin private keys without any network connectivity"], "what_it_is": "SeedSigner is a FOSS application that turns a Raspberry Pi Zero with a camera and screen into an air-gapped, stateless Bitcoin signing device. It handles BIP39 seed creation, SeedQR transcription, and QR-based transaction signing entirely offline.", "when_to_avoid": ["you want a plug-and-play commercial hardware wallet with warranty and support", "you need altcoin support beyond Bitcoin", "you are uncomfortable assembling hardware components yourself", "you need wireless connectivity or persistent key storage on the device"], "when_to_choose": ["you want a sub-$50 DIY signing device with verifiable, reproducible builds", "you need stateless operation where secrets never touch persistent storage", "you prefer fully open-source, community-maintained bitcoin tooling", "you want multisig wallet coordination with QR-based data exchange"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/seedsigner", "repo": "SeedSigner/seedsigner", "role": "main", "score": 86}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.806188+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T05:08:13.714948+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6787e86e00f0a34db0ad95dee997d90891a650f362e8fdca110f3badb508ce44", "fetched_at": "2026-08-28T04:04:06.806188+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SeedSigner/seedsigner"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.806188+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T05:08:13.714948+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6787e86e00f0a34db0ad95dee997d90891a650f362e8fdca110f3badb508ce44", "fetched_at": "2026-08-28T04:04:06.806188+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SeedSigner/seedsigner"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T05:08:13.714948+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6787e86e00f0a34db0ad95dee997d90891a650f362e8fdca110f3badb508ce44", "fetched_at": "2026-08-28T04:04:06.806188+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SeedSigner/seedsigner"}], "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:06.806188+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.806188+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.806188+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T05:08:13.714948+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6787e86e00f0a34db0ad95dee997d90891a650f362e8fdca110f3badb508ce44", "fetched_at": "2026-08-28T04:04:06.806188+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SeedSigner/seedsigner"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.806188+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.806188+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T05:08:13.714948+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6787e86e00f0a34db0ad95dee997d90891a650f362e8fdca110f3badb508ce44", "fetched_at": "2026-08-28T04:04:06.806188+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SeedSigner/seedsigner"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.806188+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.806188+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.806188+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T05:08:13.714948+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6787e86e00f0a34db0ad95dee997d90891a650f362e8fdca110f3badb508ce44", "fetched_at": "2026-08-28T04:04:06.806188+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SeedSigner/seedsigner"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.806188+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.806188+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T05:08:13.714948+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6787e86e00f0a34db0ad95dee997d90891a650f362e8fdca110f3badb508ce44", "fetched_at": "2026-08-28T04:04:06.806188+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SeedSigner/seedsigner"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T05:08:13.714948+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6787e86e00f0a34db0ad95dee997d90891a650f362e8fdca110f3badb508ce44", "fetched_at": "2026-08-28T04:04:06.806188+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SeedSigner/seedsigner"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T05:08:13.714948+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6787e86e00f0a34db0ad95dee997d90891a650f362e8fdca110f3badb508ce44", "fetched_at": "2026-08-28T04:04:06.806188+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SeedSigner/seedsigner"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T05:08:13.714948+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6787e86e00f0a34db0ad95dee997d90891a650f362e8fdca110f3badb508ce44", "fetched_at": "2026-08-28T04:04:06.806188+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SeedSigner/seedsigner"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 60}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2089, "days_push": 11, "days_rel": 57, "gap_med": 259.0, "n_releases_24m": 3}, "score": 86, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}