{"adoption": {"forks": 176, "observed_at": "2026-08-28T04:03:58.317561+00:00", "stars": 1202}, "canonical_url": "https://ross.abutalabs.com/products/floating-frame", "card": {"archived": false, "artifact_type": "application", "description": "System-wide Web3 for macOS, Windows and Linux", "domain": ["blockchain", "privacy", "security", "desktop-applications", "cross-platform"], "enriched": true, "function": ["cryptography", "security", "http-server", "websocket", "middleware", "developer-tools"], "health_score": 38, "homepage": "https://frame.sh", "language": "JavaScript", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["floating/frame"], "name": "floating/frame", "platform": ["windows", "cross-platform"], "pushed_at": "2025-03-17T19:19:47+00:00", "repo": "floating/frame", "stars": 1202, "tags": ["ethereum", "web3", "wallet", "dapp", "hardware-wallet", "ledger", "trezor", "json-rpc", "multichain", "evm", "signer", "ipfs", "cryptocurrency", "macos", "linux", "desktop", "javascript", "nodejs"], "topics": ["ethereum", "dapp", "web3", "provider", "ledger", "trezor"], "urls": [], "use_cases": ["use a ledger or trezor hardware wallet with any dapp without a browser extension", "connect command-line tools and native apps to ethereum via a local json-rpc endpoint", "sign transactions across multiple evm chains without switching networks", "decode transaction calldata before signing to verify what a dapp is doing", "manage dapp permissions and control which apps can access my accounts", "replace metamask with a privacy-focused desktop wallet using my own rpc endpoints"], "what_it_is": "Frame is a system-wide Web3 wallet platform for macOS, Windows, and Linux that exposes local JSON-RPC endpoints so any browser, CLI, or native app can access Ethereum chains and accounts. It supports hardware signers (Ledger, Trezor, GridPlus), software signers, per-dapp permissions, transaction decoding, and omnichain routing across EVM networks.", "when_to_avoid": ["you only need a simple mobile wallet for casual transactions", "you need non-EVM chains like Bitcoin or Solana", "you want a fully browser-based extension experience without a desktop app running"], "when_to_choose": ["you want system-wide web3 access from browsers, CLIs, and native apps rather than a browser-extension-only wallet", "you rely on hardware wallets and want reliable OS-level device integration", "you use multiple EVM chains and want omnichain routing without network switching", "privacy matters and you want to point the wallet at your own Ethereum and IPFS connections"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/floating-frame", "repo": "floating/frame", "role": "main", "score": 39}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:58.317561+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:20:35.753828+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fa998c1035e1cb94e7cc272ea3cbd87a6f87adbeed70f38d159e0bf46a12dd79", "fetched_at": "2026-08-28T04:03:58.317561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/floating/frame"}, {"content_hash": "19088a92e18cc7c638c1df2d23b2dafb9fce5ca1190e41cb68997c4103dae345", "fetched_at": "2026-08-29T12:27:51.639079+00:00", "kind": "homepage", "missing": false, "url": "https://frame.sh"}, {"content_hash": "62c4c5eab5def2ba52165fa7c547999285a0757473969927a9621436ce19f997", "fetched_at": "2026-08-29T12:27:51.642290+00:00", "kind": "site_page", "missing": false, "url": "https://docs.frame.sh"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:58.317561+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:20:35.753828+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fa998c1035e1cb94e7cc272ea3cbd87a6f87adbeed70f38d159e0bf46a12dd79", "fetched_at": "2026-08-28T04:03:58.317561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/floating/frame"}, {"content_hash": "19088a92e18cc7c638c1df2d23b2dafb9fce5ca1190e41cb68997c4103dae345", "fetched_at": "2026-08-29T12:27:51.639079+00:00", "kind": "homepage", "missing": false, "url": "https://frame.sh"}, {"content_hash": "62c4c5eab5def2ba52165fa7c547999285a0757473969927a9621436ce19f997", "fetched_at": "2026-08-29T12:27:51.642290+00:00", "kind": "site_page", "missing": false, "url": "https://docs.frame.sh"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:20:35.753828+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fa998c1035e1cb94e7cc272ea3cbd87a6f87adbeed70f38d159e0bf46a12dd79", "fetched_at": "2026-08-28T04:03:58.317561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/floating/frame"}, {"content_hash": "19088a92e18cc7c638c1df2d23b2dafb9fce5ca1190e41cb68997c4103dae345", "fetched_at": "2026-08-29T12:27:51.639079+00:00", "kind": "homepage", "missing": false, "url": "https://frame.sh"}, {"content_hash": "62c4c5eab5def2ba52165fa7c547999285a0757473969927a9621436ce19f997", "fetched_at": "2026-08-29T12:27:51.642290+00:00", "kind": "site_page", "missing": false, "url": "https://docs.frame.sh"}], "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:58.317561+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:58.317561+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:58.317561+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:20:35.753828+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fa998c1035e1cb94e7cc272ea3cbd87a6f87adbeed70f38d159e0bf46a12dd79", "fetched_at": "2026-08-28T04:03:58.317561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/floating/frame"}, {"content_hash": "19088a92e18cc7c638c1df2d23b2dafb9fce5ca1190e41cb68997c4103dae345", "fetched_at": "2026-08-29T12:27:51.639079+00:00", "kind": "homepage", "missing": false, "url": "https://frame.sh"}, {"content_hash": "62c4c5eab5def2ba52165fa7c547999285a0757473969927a9621436ce19f997", "fetched_at": "2026-08-29T12:27:51.642290+00:00", "kind": "site_page", "missing": false, "url": "https://docs.frame.sh"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:58.317561+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:58.317561+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:20:35.753828+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fa998c1035e1cb94e7cc272ea3cbd87a6f87adbeed70f38d159e0bf46a12dd79", "fetched_at": "2026-08-28T04:03:58.317561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/floating/frame"}, {"content_hash": "19088a92e18cc7c638c1df2d23b2dafb9fce5ca1190e41cb68997c4103dae345", "fetched_at": "2026-08-29T12:27:51.639079+00:00", "kind": "homepage", "missing": false, "url": "https://frame.sh"}, {"content_hash": "62c4c5eab5def2ba52165fa7c547999285a0757473969927a9621436ce19f997", "fetched_at": "2026-08-29T12:27:51.642290+00:00", "kind": "site_page", "missing": false, "url": "https://docs.frame.sh"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:58.317561+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:58.317561+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:58.317561+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:20:35.753828+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fa998c1035e1cb94e7cc272ea3cbd87a6f87adbeed70f38d159e0bf46a12dd79", "fetched_at": "2026-08-28T04:03:58.317561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/floating/frame"}, {"content_hash": "19088a92e18cc7c638c1df2d23b2dafb9fce5ca1190e41cb68997c4103dae345", "fetched_at": "2026-08-29T12:27:51.639079+00:00", "kind": "homepage", "missing": false, "url": "https://frame.sh"}, {"content_hash": "62c4c5eab5def2ba52165fa7c547999285a0757473969927a9621436ce19f997", "fetched_at": "2026-08-29T12:27:51.642290+00:00", "kind": "site_page", "missing": false, "url": "https://docs.frame.sh"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:58.317561+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:58.317561+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:20:35.753828+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fa998c1035e1cb94e7cc272ea3cbd87a6f87adbeed70f38d159e0bf46a12dd79", "fetched_at": "2026-08-28T04:03:58.317561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/floating/frame"}, {"content_hash": "19088a92e18cc7c638c1df2d23b2dafb9fce5ca1190e41cb68997c4103dae345", "fetched_at": "2026-08-29T12:27:51.639079+00:00", "kind": "homepage", "missing": false, "url": "https://frame.sh"}, {"content_hash": "62c4c5eab5def2ba52165fa7c547999285a0757473969927a9621436ce19f997", "fetched_at": "2026-08-29T12:27:51.642290+00:00", "kind": "site_page", "missing": false, "url": "https://docs.frame.sh"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:20:35.753828+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fa998c1035e1cb94e7cc272ea3cbd87a6f87adbeed70f38d159e0bf46a12dd79", "fetched_at": "2026-08-28T04:03:58.317561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/floating/frame"}, {"content_hash": "19088a92e18cc7c638c1df2d23b2dafb9fce5ca1190e41cb68997c4103dae345", "fetched_at": "2026-08-29T12:27:51.639079+00:00", "kind": "homepage", "missing": false, "url": "https://frame.sh"}, {"content_hash": "62c4c5eab5def2ba52165fa7c547999285a0757473969927a9621436ce19f997", "fetched_at": "2026-08-29T12:27:51.642290+00:00", "kind": "site_page", "missing": false, "url": "https://docs.frame.sh"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:20:35.753828+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fa998c1035e1cb94e7cc272ea3cbd87a6f87adbeed70f38d159e0bf46a12dd79", "fetched_at": "2026-08-28T04:03:58.317561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/floating/frame"}, {"content_hash": "19088a92e18cc7c638c1df2d23b2dafb9fce5ca1190e41cb68997c4103dae345", "fetched_at": "2026-08-29T12:27:51.639079+00:00", "kind": "homepage", "missing": false, "url": "https://frame.sh"}, {"content_hash": "62c4c5eab5def2ba52165fa7c547999285a0757473969927a9621436ce19f997", "fetched_at": "2026-08-29T12:27:51.642290+00:00", "kind": "site_page", "missing": false, "url": "https://docs.frame.sh"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:20:35.753828+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fa998c1035e1cb94e7cc272ea3cbd87a6f87adbeed70f38d159e0bf46a12dd79", "fetched_at": "2026-08-28T04:03:58.317561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/floating/frame"}, {"content_hash": "19088a92e18cc7c638c1df2d23b2dafb9fce5ca1190e41cb68997c4103dae345", "fetched_at": "2026-08-29T12:27:51.639079+00:00", "kind": "homepage", "missing": false, "url": "https://frame.sh"}, {"content_hash": "62c4c5eab5def2ba52165fa7c547999285a0757473969927a9621436ce19f997", "fetched_at": "2026-08-29T12:27:51.642290+00:00", "kind": "site_page", "missing": false, "url": "https://docs.frame.sh"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 11, "longevity": 100, "rhythm": 40}, "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": 3099, "days_push": 534, "days_rel": 576, "gap_med": 10, "n_releases_24m": 2}, "score": 39, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}