{"adoption": {"forks": 1406, "observed_at": "2026-08-28T04:04:56.270097+00:00", "stars": 1513}, "canonical_url": "https://ross.abutalabs.com/products/spellbook", "card": {"archived": false, "artifact_type": "dataset", "description": "SQL views for Dune", "domain": ["blockchain", "analytics"], "enriched": true, "function": ["etl", "database", "developer-tools"], "health_score": 91, "homepage": null, "language": "Python", "license": "NOASSERTION", "license_family": "other", "maturity": "active", "member_repos": ["duneanalytics/spellbook"], "name": "duneanalytics/spellbook", "platform": ["python", "cloud", "self-hosted"], "pushed_at": "2026-08-26T14:57:59+00:00", "repo": "duneanalytics/spellbook", "stars": 1513, "tags": ["dbt", "sql", "dune", "blockchain-analytics", "data-transformations", "web3", "cryptocurrency", "data-engineering"], "topics": [], "urls": [], "use_cases": ["query standardized DEX trade data on Dune", "build curated NFT marketplace datasets", "contribute SQL models for blockchain analytics", "run dbt transformations on DuneSQL", "get clean decoded tables for token and protocol analysis"], "what_it_is": "Spellbook is a community-maintained collection of dbt SQL models that define curated, decoded datasets (like dex.trades and NFT data) on Dune Analytics' blockchain data platform. Contributors write SQL transformations that Dune runs to produce standardized tables for crypto analytics.", "when_to_avoid": ["you're a Dune enterprise customer who can run a private dbt project via the dbt Connector", "you need data outside Dune's platform", "you want a general-purpose dbt project unrelated to blockchain data"], "when_to_choose": ["you need reliable, community-vetted blockchain datasets on Dune", "you want to contribute SQL transformations to Dune's curated tables", "you're analyzing DeX, NFT, or Solana data via Dune"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/spellbook", "repo": "duneanalytics/spellbook", "role": "main", "score": 67}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:56.270097+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:32:15.587099+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "169c9dd4a7cd0ddf7441c30ffb4b80b8bedb77c9ab0ee216e2b65052b5ec55ad", "fetched_at": "2026-08-28T04:04:56.270097+00:00", "kind": "readme", "missing": false, "url": "https://github.com/duneanalytics/spellbook"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:56.270097+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:32:15.587099+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "169c9dd4a7cd0ddf7441c30ffb4b80b8bedb77c9ab0ee216e2b65052b5ec55ad", "fetched_at": "2026-08-28T04:04:56.270097+00:00", "kind": "readme", "missing": false, "url": "https://github.com/duneanalytics/spellbook"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:32:15.587099+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "169c9dd4a7cd0ddf7441c30ffb4b80b8bedb77c9ab0ee216e2b65052b5ec55ad", "fetched_at": "2026-08-28T04:04:56.270097+00:00", "kind": "readme", "missing": false, "url": "https://github.com/duneanalytics/spellbook"}], "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:56.270097+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:56.270097+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:56.270097+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:32:15.587099+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "169c9dd4a7cd0ddf7441c30ffb4b80b8bedb77c9ab0ee216e2b65052b5ec55ad", "fetched_at": "2026-08-28T04:04:56.270097+00:00", "kind": "readme", "missing": false, "url": "https://github.com/duneanalytics/spellbook"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:56.270097+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:56.270097+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:32:15.587099+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "169c9dd4a7cd0ddf7441c30ffb4b80b8bedb77c9ab0ee216e2b65052b5ec55ad", "fetched_at": "2026-08-28T04:04:56.270097+00:00", "kind": "readme", "missing": false, "url": "https://github.com/duneanalytics/spellbook"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:56.270097+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:56.270097+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:56.270097+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:32:15.587099+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "169c9dd4a7cd0ddf7441c30ffb4b80b8bedb77c9ab0ee216e2b65052b5ec55ad", "fetched_at": "2026-08-28T04:04:56.270097+00:00", "kind": "readme", "missing": false, "url": "https://github.com/duneanalytics/spellbook"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:56.270097+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:56.270097+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:32:15.587099+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "169c9dd4a7cd0ddf7441c30ffb4b80b8bedb77c9ab0ee216e2b65052b5ec55ad", "fetched_at": "2026-08-28T04:04:56.270097+00:00", "kind": "readme", "missing": false, "url": "https://github.com/duneanalytics/spellbook"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:32:15.587099+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "169c9dd4a7cd0ddf7441c30ffb4b80b8bedb77c9ab0ee216e2b65052b5ec55ad", "fetched_at": "2026-08-28T04:04:56.270097+00:00", "kind": "readme", "missing": false, "url": "https://github.com/duneanalytics/spellbook"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:32:15.587099+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "169c9dd4a7cd0ddf7441c30ffb4b80b8bedb77c9ab0ee216e2b65052b5ec55ad", "fetched_at": "2026-08-28T04:04:56.270097+00:00", "kind": "readme", "missing": false, "url": "https://github.com/duneanalytics/spellbook"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:32:15.587099+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "169c9dd4a7cd0ddf7441c30ffb4b80b8bedb77c9ab0ee216e2b65052b5ec55ad", "fetched_at": "2026-08-28T04:04:56.270097+00:00", "kind": "readme", "missing": false, "url": "https://github.com/duneanalytics/spellbook"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2406, "days_push": 7, "days_rel": 548, "gap_med": null, "n_releases_24m": 1}, "score": 67, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}