{"adoption": {"forks": 92, "observed_at": "2026-08-28T04:03:49.008208+00:00", "stars": 1160}, "canonical_url": "https://ross.abutalabs.com/products/whatsabi", "card": {"archived": false, "artifact_type": "library", "description": "Extract the ABI (and resolve proxies, and get other metadata) from Ethereum bytecode, even without source code.", "domain": ["blockchain", "developer-tools", "apis"], "enriched": true, "function": ["parser", "developer-tools", "sdk"], "health_score": 99, "homepage": "https://shazow.github.io/whatsabi/", "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["shazow/whatsabi"], "name": "shazow/whatsabi", "platform": ["browser", "cross-platform"], "pushed_at": "2026-08-18T12:50:55+00:00", "repo": "shazow/whatsabi", "stars": 1160, "tags": ["ethereum", "evm", "bytecode-analysis", "abi", "web3", "proxy-detection", "smart-contracts", "nodejs", "typescript"], "topics": ["bytecode", "ethereum", "evm", "web3"], "urls": [], "use_cases": ["extract an ABI from unverified Ethereum contract bytecode", "resolve proxy contracts behind a contract address", "look up function signatures from selectors", "build a procedural frontend for arbitrary smart contracts", "embed contract analysis in a web3 wallet", "analyze EVM bytecode in a block explorer"], "what_it_is": "WhatsABI is a small TypeScript library that guesses an ABI and detects proxy contracts directly from Ethereum bytecode, even for unverified contracts. It works in the browser and embeds in wallets, block explorers, and other web3 tooling, integrating with Ethers.js, Viem, and Web3.js.", "when_to_avoid": ["you need full decompilation or deep static analysis of EVM bytecode", "you already have verified source code and can compile the ABI yourself", "you need a non-JavaScript environment without a JS runtime"], "when_to_choose": ["you need ABI info for contracts without verified source code", "you want a tiny, browser-runnable library with minimal dependencies", "you need proxy contract detection", "you work with contracts written in languages other than Solidity, like Vyper"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/whatsabi", "repo": "shazow/whatsabi", "role": "main", "score": 98}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:49.008208+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:31:49.761768+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6394246aafddd5ba4f09848f17820c8fbb1f7aee5b4edfebddcfa860591a547b", "fetched_at": "2026-08-28T04:03:49.008208+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shazow/whatsabi"}, {"content_hash": "4a89276cbcfbd36747a86f1c7716f250c707b71cfcb1021e0d55d3deada47be1", "fetched_at": "2026-08-29T12:36:37.552960+00:00", "kind": "homepage", "missing": false, "url": "https://shazow.github.io/whatsabi/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:49.008208+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:31:49.761768+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6394246aafddd5ba4f09848f17820c8fbb1f7aee5b4edfebddcfa860591a547b", "fetched_at": "2026-08-28T04:03:49.008208+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shazow/whatsabi"}, {"content_hash": "4a89276cbcfbd36747a86f1c7716f250c707b71cfcb1021e0d55d3deada47be1", "fetched_at": "2026-08-29T12:36:37.552960+00:00", "kind": "homepage", "missing": false, "url": "https://shazow.github.io/whatsabi/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:31:49.761768+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6394246aafddd5ba4f09848f17820c8fbb1f7aee5b4edfebddcfa860591a547b", "fetched_at": "2026-08-28T04:03:49.008208+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shazow/whatsabi"}, {"content_hash": "4a89276cbcfbd36747a86f1c7716f250c707b71cfcb1021e0d55d3deada47be1", "fetched_at": "2026-08-29T12:36:37.552960+00:00", "kind": "homepage", "missing": false, "url": "https://shazow.github.io/whatsabi/"}], "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:49.008208+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:49.008208+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:49.008208+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:31:49.761768+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6394246aafddd5ba4f09848f17820c8fbb1f7aee5b4edfebddcfa860591a547b", "fetched_at": "2026-08-28T04:03:49.008208+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shazow/whatsabi"}, {"content_hash": "4a89276cbcfbd36747a86f1c7716f250c707b71cfcb1021e0d55d3deada47be1", "fetched_at": "2026-08-29T12:36:37.552960+00:00", "kind": "homepage", "missing": false, "url": "https://shazow.github.io/whatsabi/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:49.008208+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:49.008208+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:31:49.761768+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6394246aafddd5ba4f09848f17820c8fbb1f7aee5b4edfebddcfa860591a547b", "fetched_at": "2026-08-28T04:03:49.008208+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shazow/whatsabi"}, {"content_hash": "4a89276cbcfbd36747a86f1c7716f250c707b71cfcb1021e0d55d3deada47be1", "fetched_at": "2026-08-29T12:36:37.552960+00:00", "kind": "homepage", "missing": false, "url": "https://shazow.github.io/whatsabi/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:49.008208+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:49.008208+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:49.008208+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:31:49.761768+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6394246aafddd5ba4f09848f17820c8fbb1f7aee5b4edfebddcfa860591a547b", "fetched_at": "2026-08-28T04:03:49.008208+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shazow/whatsabi"}, {"content_hash": "4a89276cbcfbd36747a86f1c7716f250c707b71cfcb1021e0d55d3deada47be1", "fetched_at": "2026-08-29T12:36:37.552960+00:00", "kind": "homepage", "missing": false, "url": "https://shazow.github.io/whatsabi/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:49.008208+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:49.008208+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:31:49.761768+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6394246aafddd5ba4f09848f17820c8fbb1f7aee5b4edfebddcfa860591a547b", "fetched_at": "2026-08-28T04:03:49.008208+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shazow/whatsabi"}, {"content_hash": "4a89276cbcfbd36747a86f1c7716f250c707b71cfcb1021e0d55d3deada47be1", "fetched_at": "2026-08-29T12:36:37.552960+00:00", "kind": "homepage", "missing": false, "url": "https://shazow.github.io/whatsabi/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:31:49.761768+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6394246aafddd5ba4f09848f17820c8fbb1f7aee5b4edfebddcfa860591a547b", "fetched_at": "2026-08-28T04:03:49.008208+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shazow/whatsabi"}, {"content_hash": "4a89276cbcfbd36747a86f1c7716f250c707b71cfcb1021e0d55d3deada47be1", "fetched_at": "2026-08-29T12:36:37.552960+00:00", "kind": "homepage", "missing": false, "url": "https://shazow.github.io/whatsabi/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:31:49.761768+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6394246aafddd5ba4f09848f17820c8fbb1f7aee5b4edfebddcfa860591a547b", "fetched_at": "2026-08-28T04:03:49.008208+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shazow/whatsabi"}, {"content_hash": "4a89276cbcfbd36747a86f1c7716f250c707b71cfcb1021e0d55d3deada47be1", "fetched_at": "2026-08-29T12:36:37.552960+00:00", "kind": "homepage", "missing": false, "url": "https://shazow.github.io/whatsabi/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:31:49.761768+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6394246aafddd5ba4f09848f17820c8fbb1f7aee5b4edfebddcfa860591a547b", "fetched_at": "2026-08-28T04:03:49.008208+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shazow/whatsabi"}, {"content_hash": "4a89276cbcfbd36747a86f1c7716f250c707b71cfcb1021e0d55d3deada47be1", "fetched_at": "2026-08-29T12:36:37.552960+00:00", "kind": "homepage", "missing": false, "url": "https://shazow.github.io/whatsabi/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 100, "rhythm": 98}, "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": 1442, "days_push": 15, "days_rel": 15, "gap_med": 17.5, "n_releases_24m": 21}, "score": 98, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}