{"adoption": {"forks": 577, "observed_at": "2026-08-28T04:08:08.070299+00:00", "stars": 3525}, "canonical_url": "https://ross.abutalabs.com/products/wtf-ethers", "card": {"archived": false, "artifact_type": "learning-resource", "description": "我最近在重新学ethers.js，巩固一下细节，也写一个“WTF Ethers.js极简入门”，供小白们使用，每周更新1-3讲。Now supports English! 官网: https://wtf.academy", "domain": ["blockchain", "developer-tools", "tutorials", "web-development"], "enriched": true, "function": ["developer-tools", "sdk"], "health_score": 47, "homepage": "https://wtf.academy", "language": "JavaScript", "license": "NOASSERTION", "license_family": "other", "maturity": "active", "member_repos": ["WTFAcademy/WTF-Ethers"], "name": "WTFAcademy/WTF-Ethers", "platform": [], "pushed_at": "2025-10-06T08:50:40+00:00", "repo": "WTFAcademy/WTF-Ethers", "stars": 3525, "tags": ["ethereum", "ethersjs", "web3", "solidity", "tutorial", "smart-contracts", "beginner-friendly", "open-courseware", "nodejs", "javascript"], "topics": ["ethereum", "ethers", "ethersjs", "javascript", "solidity", "typescript", "web3", "nodejs"], "urls": [], "use_cases": ["learn ethers.js from scratch as a beginner", "understand how to read and write smart contracts with ethers.js", "send ETH transactions programmatically", "deploy smart contracts using ethers.js", "listen to and filter Ethereum contract events", "convert Ethereum units like wei and ether in JavaScript", "get started with web3 development in JavaScript"], "what_it_is": "An open-source minimalist tutorial series ('WTF Ethers') teaching ethers.js v6 for Ethereum development, with one lesson per directory containing both code examples and written explanations. It is produced by WTF Academy, updated weekly, and available in both Chinese and English.", "when_to_avoid": ["you need comprehensive API reference documentation rather than a tutorial", "you are looking for production-ready application code", "you use ethers.js v5 and need the current-version lessons (a separate v5 branch exists)", "you need a formal certified course with instructor support"], "when_to_choose": ["you are a beginner wanting a step-by-step ethers.js v6 introduction", "you prefer learning by running small runnable code examples", "you want free, community-maintained Web3 learning material in Chinese or English"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/wtf-ethers", "repo": "WTFAcademy/WTF-Ethers", "role": "main", "score": 52}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:08.070299+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:35:10.209631+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3692eb096a33659c1924bb5f735e895b513d9e4ba69f1be5deccca20728090ff", "fetched_at": "2026-08-28T04:08:08.070299+00:00", "kind": "readme", "missing": false, "url": "https://github.com/WTFAcademy/WTF-Ethers"}, {"content_hash": "f99361223bb88b157c02441ac06a318a54fcedc4adf9b7593fe6981a7ed6e276", "fetched_at": "2026-08-29T09:29:29.432574+00:00", "kind": "homepage", "missing": false, "url": "https://wtf.academy"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:08.070299+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:35:10.209631+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3692eb096a33659c1924bb5f735e895b513d9e4ba69f1be5deccca20728090ff", "fetched_at": "2026-08-28T04:08:08.070299+00:00", "kind": "readme", "missing": false, "url": "https://github.com/WTFAcademy/WTF-Ethers"}, {"content_hash": "f99361223bb88b157c02441ac06a318a54fcedc4adf9b7593fe6981a7ed6e276", "fetched_at": "2026-08-29T09:29:29.432574+00:00", "kind": "homepage", "missing": false, "url": "https://wtf.academy"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:35:10.209631+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3692eb096a33659c1924bb5f735e895b513d9e4ba69f1be5deccca20728090ff", "fetched_at": "2026-08-28T04:08:08.070299+00:00", "kind": "readme", "missing": false, "url": "https://github.com/WTFAcademy/WTF-Ethers"}, {"content_hash": "f99361223bb88b157c02441ac06a318a54fcedc4adf9b7593fe6981a7ed6e276", "fetched_at": "2026-08-29T09:29:29.432574+00:00", "kind": "homepage", "missing": false, "url": "https://wtf.academy"}], "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:08:08.070299+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:08.070299+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:08.070299+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:35:10.209631+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3692eb096a33659c1924bb5f735e895b513d9e4ba69f1be5deccca20728090ff", "fetched_at": "2026-08-28T04:08:08.070299+00:00", "kind": "readme", "missing": false, "url": "https://github.com/WTFAcademy/WTF-Ethers"}, {"content_hash": "f99361223bb88b157c02441ac06a318a54fcedc4adf9b7593fe6981a7ed6e276", "fetched_at": "2026-08-29T09:29:29.432574+00:00", "kind": "homepage", "missing": false, "url": "https://wtf.academy"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:08.070299+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:08.070299+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:35:10.209631+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3692eb096a33659c1924bb5f735e895b513d9e4ba69f1be5deccca20728090ff", "fetched_at": "2026-08-28T04:08:08.070299+00:00", "kind": "readme", "missing": false, "url": "https://github.com/WTFAcademy/WTF-Ethers"}, {"content_hash": "f99361223bb88b157c02441ac06a318a54fcedc4adf9b7593fe6981a7ed6e276", "fetched_at": "2026-08-29T09:29:29.432574+00:00", "kind": "homepage", "missing": false, "url": "https://wtf.academy"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:08.070299+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:08.070299+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:08.070299+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:35:10.209631+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3692eb096a33659c1924bb5f735e895b513d9e4ba69f1be5deccca20728090ff", "fetched_at": "2026-08-28T04:08:08.070299+00:00", "kind": "readme", "missing": false, "url": "https://github.com/WTFAcademy/WTF-Ethers"}, {"content_hash": "f99361223bb88b157c02441ac06a318a54fcedc4adf9b7593fe6981a7ed6e276", "fetched_at": "2026-08-29T09:29:29.432574+00:00", "kind": "homepage", "missing": false, "url": "https://wtf.academy"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:08.070299+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:08.070299+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:35:10.209631+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3692eb096a33659c1924bb5f735e895b513d9e4ba69f1be5deccca20728090ff", "fetched_at": "2026-08-28T04:08:08.070299+00:00", "kind": "readme", "missing": false, "url": "https://github.com/WTFAcademy/WTF-Ethers"}, {"content_hash": "f99361223bb88b157c02441ac06a318a54fcedc4adf9b7593fe6981a7ed6e276", "fetched_at": "2026-08-29T09:29:29.432574+00:00", "kind": "homepage", "missing": false, "url": "https://wtf.academy"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:35:10.209631+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3692eb096a33659c1924bb5f735e895b513d9e4ba69f1be5deccca20728090ff", "fetched_at": "2026-08-28T04:08:08.070299+00:00", "kind": "readme", "missing": false, "url": "https://github.com/WTFAcademy/WTF-Ethers"}, {"content_hash": "f99361223bb88b157c02441ac06a318a54fcedc4adf9b7593fe6981a7ed6e276", "fetched_at": "2026-08-29T09:29:29.432574+00:00", "kind": "homepage", "missing": false, "url": "https://wtf.academy"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:35:10.209631+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3692eb096a33659c1924bb5f735e895b513d9e4ba69f1be5deccca20728090ff", "fetched_at": "2026-08-28T04:08:08.070299+00:00", "kind": "readme", "missing": false, "url": "https://github.com/WTFAcademy/WTF-Ethers"}, {"content_hash": "f99361223bb88b157c02441ac06a318a54fcedc4adf9b7593fe6981a7ed6e276", "fetched_at": "2026-08-29T09:29:29.432574+00:00", "kind": "homepage", "missing": false, "url": "https://wtf.academy"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:35:10.209631+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3692eb096a33659c1924bb5f735e895b513d9e4ba69f1be5deccca20728090ff", "fetched_at": "2026-08-28T04:08:08.070299+00:00", "kind": "readme", "missing": false, "url": "https://github.com/WTFAcademy/WTF-Ethers"}, {"content_hash": "f99361223bb88b157c02441ac06a318a54fcedc4adf9b7593fe6981a7ed6e276", "fetched_at": "2026-08-29T09:29:29.432574+00:00", "kind": "homepage", "missing": false, "url": "https://wtf.academy"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 45, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1502, "days_push": 331, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 52, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}