ethereum-lists/chains
60.5
Adequate · 25 September 2026
639
lines of production code
Kotlin
with JavaScript
4
measurements over time
What this system is
This system is a data repository and validation toolset for Ethereum Virtual Machine (EVM) chain definitions, structured around the CAIP-2 standard. It provides Kotlin-based processors and Node.js utilities to validate, clean, and aggregate chain metadata, including RPC endpoints, explorers, and icons. The system enforces strict schema compliance and data integrity through automated testing and remote data fetching capabilities.
Features
Add HTTPS-based chain list loader
The httpsloader module now provides a function to fetch the list of supported chains from the remote https://chainid.network/chains.json endpoint. This enables users to load chain data over HTTPS using OkHttp and Moshi for JSON parsing, replacing or supplementing local/static sources with up-to-date remote information.
httpsloader · high confidence
Add chain data validation and cleanup tools
New utility scripts have been added to the tools directory to maintain data integrity for chain definitions. The schemaCheck.js tool validates that chain files conform to the defined JSON schema and ensures the filename matches the chain ID according to CAIP-2 standards. Additionally, rmNetwork.js is provided to remove the deprecated 'network' parameter from all chain files in the \_data/chains directory.
tools · high confidence
Added icon for QAZt75XixnEtFzqHTrJa8kJkV4ccXWaXqeMeqM8BcBomQc
A new SVG icon file has been added to the \_data/iconsDownload directory for the chain identified by the IPFS hash QAZt75XixnEtFzqHTrJa8kJkV4ccXWaXqeMeqM8BcBomQc. This addition ensures the chain is visually represented in the interface.
_\data/iconsDownload · high confidence
Initial repository structure and build tooling setup
This change establishes the foundational structure for the EVM-based chains data repository. It introduces the Gradle wrapper (gradlew/gradlew.bat) and configuration to handle data validation and aggregation tasks, alongside Prettier configuration for consistent JSON formatting. The repository is initialized with a comprehensive README detailing the CAIP-2 based chain data schema, constraints, and usage guidelines, along with a maintainer checklist to guide PR submissions. Additionally, it sets up a Jekyll-based website as a git submodule and configures build artifacts (like \_site and .gradle) to be ignored.
(repo-wide) · high confidence
Behavioural changes
New validation rules and icon handling for chain data
The processor now enforces stricter validation on chain data, including support for new fields like 'title', 'status', and 'redFlags' (specifically 'reusedChainId'), while deprecating the 'network' field. Icon handling has been updated to allow JPG formats, enforce a 250KB size limit (with a list of legacy CIDs exempted), and verify that icons are properly referenced and not unused. Additionally, the system now checks that explorer URLs return valid HTTP status codes (allowing 403s) and validates RPC schemas and connectivity.
processor/src/main/kotlin/org/ethereum/lists/chains · high confidence
Refactor chain data model with new fields and EIP-3091 explorer filtering
The chain model now includes optional title and native currency details, while the network field has been removed. Explorer data is now structured with a standard field, enabling automatic filtering to show only EIP-3091 compliant explorers by default.
model · high confidence
Validation logic for chain data is extracted into dedicated exception classes
The validation rules for chain metadata files are now enforced through a comprehensive set of specific exception types defined in the model layer. This change introduces strict checks for various data fields, including ensuring RPC URLs are valid lists of strings, explorer URLs start with http or https and return 2XX status codes, and native currency symbols are non-blank, untrimmed, and under 7 characters. It also adds validation for new or updated fields such as 'redFlags', 'faucets', 'parent' chain references, and a 'status' field (allowing incubating, active, or deprecated), while preventing invalid short names like '\*' and ensuring icon files are referenced.
processor/src/main/kotlin/org/ethereum/lists/chains/model · high confidence
Test coverage
Added invalid chain data fixtures for validation testing; Added validation tests for chain data integrity.
Dependencies
Initial dependency configuration for Kotlin and Node.js tooling
This change introduces the initial dependency manifests for the project, establishing the build environment for the Kotlin-based modules (processor, model, httpsloader) and the Node.js tooling. The Kotlin modules are configured with Kotlin 2.4.20, KEthereum 0.86.0, and various libraries including OkHttp, Moshi, Klaxon, and ImageIO. The Node.js tools directory adds \ajv\ (version 8.11.0) as a development dependency for JSON schema validation.
(dependencies) · high confidence
Update Gradle wrapper to version 9.7.1
The project's Gradle wrapper has been updated to use version 9.7.1. This change ensures that builds will automatically download and use this specific Gradle distribution, providing consistency across development and CI environments and leveraging any improvements or bug fixes included in this release.
gradle · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.
Score
- CAI 48 → 60 (+12.8)
- Rubric changed (rubric-2026.08.15 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 84 → 72 (-11.9)
- Architecture 96 → 100 (+4.4)
- Maturity 50 → 56 (+5.8)
- Readiness 32 → 56 (+23.5)
- Security 61 → 67 (+6.6)
Resolved (20)
- Coverage not measured — test suite did not build
- Dimension evaluation failed
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- Medium CVE: [GHSA redacted] (tools/package-lock.json)
- No exposed public API
- No tests found
- Test reliability not included
- The README begins with a strong EVM-based Chains theme but does not mention how chains are selected or seeded from the data (e.g. which tools populate _data/chains). (README.md)
New (31)
- Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
- Fork-triggerable workflow runs with an unscoped write token
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- …and 11 more
Changes since last survey
- 161 commits — 149 feature/other, 12 fixes
By area
- _data/chains — 129 commits
- _data/icons — 8 commits
- data/chains — 8 commits
- (repo) — 4 commits
- processor/build.gradle — 4 commits
- (root) — 3 commits
- _data/iconsDownload — 2 commits
- gradle/wrapper — 2 commits
- _data/eip155-4845.json — 1 commit
Notable commits
- fix: Fix PropTech (PTEK) icon cache and dimensions (#8729)
- fix: Fix Shibarium (eip155-109): use the official RPC endpoint (#8699)
- fix: Revert "Add TURKLEDGER chain (EIP-155:18818) (#8344)" (#8760)
- fix: Revert "Add ZENX Network (eip155-88991.json) (#8682)" (#8759)
- fix: Revert "Add ZORYQ EVM Testnet (Chain ID 5919065) (#8687)" (#8758)
- fix: Revert "Add configuration for Fyber Chain (chain ID 4044) (#8293)" (#8761)
- fix: Revert "eip155-20488.json (#8599)" (#8757)
- fix: fix(eip155-8217): remove inactive Kaiascope explorer (#8700)
- fix: fix(vinuchain): move testnet 206 RPC to testnet-rpc.vinuchain.org (#8719)
- fix: fix: gnosis faucet url (#8672)
- fix: fix: mark Xitcoin mainnet as prelaunch (#8621)
- fix: fix: point five explorers at the https URL they already redirect to (#8741)
- change: Add Autyon Testnet (chainId 77077) (#8649)
- change: Add AVI OS (eip155-3210) (#8731)
- change: Add AXON Finance mainnet and testnet (#8718)
- change: Add Amero X Network (eip155-3535) (#8534)
- change: Add ArrowRPC public endpoint to Robinhood Chain (4663) (#8513)
- change: Add Banteng Chain Testnet (chainId: 993) (#8620)
- change: Add Beam RPC endpoints for Arc (eip155-5042) (#8726)
- change: Add Bighive Mainnet chain ID 1062 (#8711)
- …and 141 more
Architecture
- Containers 0 added · 0 removed · contexts 1 added · 0 removed · edges 0 added · 0 removed
Added bounded contexts (1)
- model
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
ethereum-lists/chains was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 25 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 1d689ca165de8688a4080e8fa79eb8e2e6d4cb8b — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-dd72cc24c749.