{"adoption": {"forks": 704, "observed_at": "2026-08-28T04:03:20.909327+00:00", "stars": 1042}, "canonical_url": "https://ross.abutalabs.com/products/panoramix", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Decompiler at the heart of Eveem.org", "domain": ["blockchain", "developer-tools", "security", "reverse-engineering"], "enriched": true, "function": ["reverse-engineering", "parser", "developer-tools", "cli"], "health_score": 20, "homepage": "https://www.eveem.org/", "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["eveem-org/panoramix"], "name": "eveem-org/panoramix", "platform": ["python", "cli", "cross-platform"], "pushed_at": "2024-08-16T06:44:52+00:00", "repo": "eveem-org/panoramix", "stars": 1042, "tags": ["smart-contracts", "ethereum", "decompiler", "evm", "solidity", "bytecode-analysis", "web3", "pattern-matching", "cryptocurrency"], "topics": [], "urls": [], "use_cases": ["decompile ethereum smart contract bytecode into readable pseudocode", "analyze a smart contract's functions without source code", "reverse engineer unverified solidity contracts", "batch decompile all contracts on the ethereum chain", "understand what a contract function does before interacting with it", "study evm bytecode with verbose assembly and stack output"], "what_it_is": "Panoramix is a Python-based decompiler that converts Ethereum smart contract bytecode into readable pseudocode, powering the Eveem.org service. It fetches deployed contract bytecode from the blockchain and decompiles individual functions or entire contracts, with caching and bulk decompilation utilities.", "when_to_avoid": ["you need an actively maintained decompiler - use the palkeo/panoramix fork instead", "you cannot run python3.8 exactly, since the tool depends on it", "you need decompilation for non-EVM chains or languages other than Ethereum bytecode", "you want a polished GUI or web interface rather than a command-line tool"], "when_to_choose": ["you need to read pseudocode for an Ethereum contract whose source is not verified", "you want to bulk-decompile large numbers of contracts with multiprocessing", "you want an explainable decompiler whose internals you can inspect and modify", "you are okay pinning to python3.8 and maintaining the tool yourself"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/panoramix", "repo": "eveem-org/panoramix", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.909327+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:02:39.730476+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1e1a3666a216d04cae6e72859cc2567b044be7d8367f8402a262d8a501f024fe", "fetched_at": "2026-08-28T04:03:20.909327+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eveem-org/panoramix"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.909327+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:02:39.730476+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1e1a3666a216d04cae6e72859cc2567b044be7d8367f8402a262d8a501f024fe", "fetched_at": "2026-08-28T04:03:20.909327+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eveem-org/panoramix"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:02:39.730476+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1e1a3666a216d04cae6e72859cc2567b044be7d8367f8402a262d8a501f024fe", "fetched_at": "2026-08-28T04:03:20.909327+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eveem-org/panoramix"}], "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.909327+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.909327+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.909327+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:02:39.730476+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1e1a3666a216d04cae6e72859cc2567b044be7d8367f8402a262d8a501f024fe", "fetched_at": "2026-08-28T04:03:20.909327+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eveem-org/panoramix"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.909327+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.909327+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:02:39.730476+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1e1a3666a216d04cae6e72859cc2567b044be7d8367f8402a262d8a501f024fe", "fetched_at": "2026-08-28T04:03:20.909327+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eveem-org/panoramix"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.909327+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.909327+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.909327+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:02:39.730476+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1e1a3666a216d04cae6e72859cc2567b044be7d8367f8402a262d8a501f024fe", "fetched_at": "2026-08-28T04:03:20.909327+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eveem-org/panoramix"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.909327+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.909327+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:02:39.730476+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1e1a3666a216d04cae6e72859cc2567b044be7d8367f8402a262d8a501f024fe", "fetched_at": "2026-08-28T04:03:20.909327+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eveem-org/panoramix"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:02:39.730476+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1e1a3666a216d04cae6e72859cc2567b044be7d8367f8402a262d8a501f024fe", "fetched_at": "2026-08-28T04:03:20.909327+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eveem-org/panoramix"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:02:39.730476+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1e1a3666a216d04cae6e72859cc2567b044be7d8367f8402a262d8a501f024fe", "fetched_at": "2026-08-28T04:03:20.909327+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eveem-org/panoramix"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:02:39.730476+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1e1a3666a216d04cae6e72859cc2567b044be7d8367f8402a262d8a501f024fe", "fetched_at": "2026-08-28T04:03:20.909327+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eveem-org/panoramix"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2524, "days_push": 747, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}