Public record
Software health reportschema 0.27.0 · metrics 1.13.0 · 2026-07-26 15:07 UTC

cryptomental / go-ethereum

Official Go implementation of the Ethereum protocol

GoLGPL-3.0★ 0 stars⑂ 1 forksince Dec 2018forkView on GitHub ↗

cryptomental/go-ethereum holds a health index of 24 out of 100, placing it in the Critical band. It scores highest on AI Readiness (68/100) and lowest on Community & Adoption (12/100). It was last updated 2323 days ago. 2 contributors account for most of its recent work.

24
overall / 100
Critical

Software health index

Metrics are grouped into weighted categories on one standardized 1–100 scale. Overall starts as their weighted mean; when public evidence triggers the High-Risk Jurisdiction Policy, the rating is adjusted and receives an At risk ceiling of 49. AI Readiness sits outside the overall score.

24
Excellent85-100Exemplary; meets essentially all checked criteria
Good70-84Healthy; minor gaps
Moderate50-69Acceptable with notable gaps; review recommended
At risk30-49Significant weaknesses; adoption warrants caution
Critical1-29Severe problems (abandoned, single-maintainer, no hygiene)
VitalityCommunity &AdoptionSustainability &GovernanceEngineeringQualitySecurityAI Readiness

Score profile

Each axis is a category. The shape matters more than the average — a healthy subject fills the whole shape, while a spike-and-crater profile means strength in one dimension is masking risk in another.

Abandonment Policy applies a 85% multiplier to weighted overall health.

Ownership

CryptoMentalPersonal account
46 followers112 public repossince Aug 2016

This repository is owned by a personal account. A single-owner project carries more continuity risk than an organization-backed one.

Metrics by category

Vitality

Is the project alive — is code being written and are releases shipping?

20Critical · 22% of overall
How it's scored
0/36Push recency — last push 2,323 days ago
0/36Commit cadence — 0/52 weeks with commits
0/18Commit volume — 0 commits in the last year
0/10OpenSSF Scorecard: Maintained — 0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
Inputs used
commits_last_year0
human_commit_share1
days_since_last_push2,323
active_weeks_last_year0
How it's scored
16.2/27Ships releases — 95 version tags (no GitHub releases)
0/36Release recency — latest release 3,237 days ago
27/27Release cadence — a release every ~23.6 days
0/10OpenSSF Scorecard: Signed-Releases — no data
Inputs used
releases_count95
latest_release_tagv1.7.0
releases_from_tagsyes
days_since_latest_release3,237
mean_days_between_releases23.6
Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.

Community & Adoption

Does the project have users, downloads, attention, and a welcoming setup for contributors?

12Critical · 18% of overall
How it's scored
0/60Stars — 0 stars
0/25Forks — 1 forks
0/15Watchers — 1 watchers
Inputs used
forks1
stars0
watchers1
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
How it's scored
0/22.5README
22.5/22.5License — recognized license (LGPL-3.0)
0/18CONTRIBUTING guide
0/13.5Code of conduct
0/7.2Issue template
0/6.3PR template
Inputs used
has_readmeno
has_licenseno
has_contributingno
has_issue_templateno
has_code_of_conductno
has_pull_request_templateno

Sustainability & Governance

Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?

42At risk · 24% of overall
How it's scored
25.2/54Bus factor — 2 contributor(s) cover half of all commits
12.9/22.5Commit distribution — top contributor authored 42% of commits
13.5/13.5Contributor breadth — 100 contributors
10/10OpenSSF Scorecard: Contributors — project has 64 contributing companies or organizations
Inputs used
bus_factor2
contributors_sampled100
top_contributor_share0.425
How it's scored
0/46.8Issue resolution — no issues or no data
0/38.3PR acceptance — no decided pull requests or no data
0/15OpenSSF Scorecard: Code-Review — Found 0/30 approved changesets -- score normalized to 0
Inputs used
merged_prs0
open_issues0
closed_issues0
issue_closed_ratio
closed_unmerged_prs0
Excluded from scoring (no data or not applicable): Issue resolution, PR acceptance. Remaining weights renormalized.
How it's scored
10/30Ownership backing — personal (user) account
0/20Verified domain — not applicable to user accounts
12/25Owner reach — 46 followers of cryptomental
25/25Track record — 112 public repos, account ~9 yr old
Inputs used
followers46
owner_typeUser
is_verified
owner_logincryptomental
public_repos112
account_age_days3,643
Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.

Engineering Quality

Are baseline engineering and documentation practices in place?

40At risk · 20% of overall
How it's scored
0/24CI workflows
24/24Tests present
16/16Linter config — .eslintrc
0/9.6Pre-commit hooks
0/6.4.editorconfig
0/20OpenSSF Scorecard: CI-Tests — no data
Inputs used
has_cino
has_testsyes
has_editorconfigno
has_linter_configyes
has_precommit_configno
Excluded from scoring (no data or not applicable): OpenSSF Scorecard: CI-Tests. Remaining weights renormalized.

Documentation

25Critical
How it's scored
0/30README
0/25Documentation directory
15/15Documentation / homepage site — https://geth.ethereum.org
0/10Repository description
0/10Topics
10/10Wiki
Inputs used
topics
has_wikiyes
homepagehttps://geth.ethereum.org
has_readmeno
has_docs_dirno
has_descriptionno

Security

Are visible security and supply-chain practices strong, without unresolved high-risk jurisdiction exposure?

18Critical · 16% of overall
How it's scored
6.8/7.5Binary-Artifacts — binaries present in source code
0/7.5Branch-Protection — branch protection not enabled on development/release branches
0/2.5CI-Tests — no data
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 0/30 approved changesets -- score normalized to 0
2.5/2.5Contributors — project has 64 contributing companies or organizations
0/10Dangerous-Workflow — no data
0/7.5Dependency-Update-Tool — no update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5License — license file detected
0/7.5Maintained — 0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
0/5Packaging — no data
1/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 2
0/5SAST — no SAST tool detected
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — no data
0/7.5Token-Permissions — no data
0/7.5Vulnerabilities — 191 existing vulnerabilities detected
Inputs used
sourceopenssf_scorecard
checks_evaluated13
scorecard_versionv5.5.0
checks_inconclusive5
scorecard_aggregate1.8
Excluded from scoring (no data or not applicable): ci_tests, dangerous_workflow, packaging, signed_releases, token_permissions. Remaining weights renormalized.

AI Readiness

How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score.

68Moderate · 0% of overall
How it's scored
0/45Agent instructions — no CLAUDE.md / AGENTS.md / editor rules
0/15Machine-readable docs (llms.txt)
40/40Legible commit history — 80 of 100 human commits state their intent (structured subject or explanatory body)
Inputs used
has_llms_txtno
legible_history_share0.8
agent_instruction_files
agent_instruction_max_bytes
How it's scored
18/18One-command bootstrap — Makefile, swarm/dev/Makefile, vendor/github.com/aristanetworks/goarista/Makefile, vendor/github.com/golang/protobuf/proto/Makefile, vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/Makefile, vendor/github.com/opentracing/opentracing-go/Makefile, vendor/github.com/robertkrimen/otto/Makefile, vendor/github.com/robertkrimen/otto/parser/Makefile, vendor/github.com/robertkrimen/otto/token/Makefile, vendor/github.com/uber/jaeger-client-go/Makefile, vendor/golang.org/x/text/language/Makefile, vendor/gopkg.in/sourcemap.v1/Makefile
22/22Automated tests
11/11Lint / format config — .eslintrc
11/11Static type checking — Go (statically typed)
10/10Reproducible environment — Dockerfile, lockfile
0/10Demonstrated agent practice — no agent-authored commits among the last 100
0/8Automated maintenance — no automated dependency updates observed
2/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 2
Inputs used
has_nixno
has_testsyes
lockfilesyarn.lock
has_dockerfileyes
typed_languageyes
bootstrap_filesMakefile, swarm/dev/Makefile, vendor/github.com/aristanetworks/goarista/Makefile, vendor/github.com/golang/protobuf/proto/Makefile, vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/Makefile, vendor/github.com/opentracing/opentracing-go/Makefile, vendor/github.com/robertkrimen/otto/Makefile, vendor/github.com/robertkrimen/otto/parser/Makefile, vendor/github.com/robertkrimen/otto/token/Makefile, vendor/github.com/uber/jaeger-client-go/Makefile, vendor/golang.org/x/text/language/Makefile, vendor/gopkg.in/sourcemap.v1/Makefile
has_devcontainerno
has_linter_configyes
typecheck_configs
agent_commit_share0
toolchain_manifests
dependency_bot_commit_share0
How it's scored
45/45Type-checkable code — Go (statically typed)
54.2/55Manageable file sizes — 17/1,152 source files over 60KB
Inputs used
primary_languageGo
largest_source_bytes2,709,329
source_files_sampled1,152
oversized_source_files17
How it's scored
40/40API schema (OpenAPI/GraphQL/proto) — accounts/usbwallet/internal/trezor/messages.proto, accounts/usbwallet/internal/trezor/types.proto
0/20MCP server
40/40Runnable examples — examples
Inputs used
example_dirsexamples
has_mcp_signalno
api_schema_filesaccounts/usbwallet/internal/trezor/messages.proto, accounts/usbwallet/internal/trezor/types.proto

Key facts

0GitHub stars
100contributors
0commits, last 12 months
2,323days since last push
95releases
2bus factor
0open issues
package ecosystems

Data collection warnings

  • Community profile unavailable
  • GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

More detail

OpenSSF Scorecard 1.8 / 10
1.8aggregate

Independent, tool-agnostic security assessment from the open-source OpenSSF Scorecard. Each check rewards a security practice, not a specific vendor's tool. Checks Scorecard could not determine are marked n/a and excluded from the security score (never counted as zero).Scorecard v5.5.0 · 2026-07-26 15:07 UTC

9Binary-Artifactsbinaries present in source code
0Branch-Protectionbranch protection not enabled on development/release branches
n/aCI-Testsno pull request found
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 0/30 approved changesets -- score normalized to 0
10Contributorsproject has 64 contributing companies or organizations
n/aDangerous-Workflowno workflows found
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
0Maintained0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
n/aPackagingpackaging workflow not detected
2Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 2
0SASTno SAST tool detected
0Security-Policysecurity policy file not detected
n/aSigned-Releasesno releases found
n/aToken-PermissionsNo tokens found
0Vulnerabilities191 existing vulnerabilities detected
Direct dependencies 38
RegistryPackageVersion constraintManifest
npmbabel-core^6.26.0dashboard/assets/package.json
npmbabel-eslint^8.2.1dashboard/assets/package.json
npmbabel-loader^7.1.2dashboard/assets/package.json
npmbabel-plugin-transform-class-properties^6.24.1dashboard/assets/package.json
npmbabel-plugin-transform-decorators-legacy^1.3.4dashboard/assets/package.json
npmbabel-plugin-transform-flow-strip-types^6.22.0dashboard/assets/package.json
npmbabel-plugin-transform-runtime^6.23.0dashboard/assets/package.json
npmbabel-preset-env^1.6.1dashboard/assets/package.json
npmbabel-preset-react^6.24.1dashboard/assets/package.json
npmbabel-preset-stage-0^6.24.1dashboard/assets/package.json
npmbabel-runtime^6.26.0dashboard/assets/package.json
npmclassnames^2.2.5dashboard/assets/package.json
npmcss-loader^0.28.9dashboard/assets/package.json
npmescape-html^1.0.3dashboard/assets/package.json
npmeslint^4.16.0dashboard/assets/package.json
npmeslint-config-airbnb^16.1.0dashboard/assets/package.json
npmeslint-loader^2.0.0dashboard/assets/package.json
npmeslint-plugin-flowtype^2.41.0dashboard/assets/package.json
npmeslint-plugin-import^2.8.0dashboard/assets/package.json
npmeslint-plugin-jsx-a11y^6.0.3dashboard/assets/package.json
npmeslint-plugin-react^7.5.1dashboard/assets/package.json
npmfile-loader^1.1.6dashboard/assets/package.json
npmflow-bin^0.63.1dashboard/assets/package.json
npmflow-bin-loader^1.0.2dashboard/assets/package.json
npmflow-typed^2.2.3dashboard/assets/package.json
npmmaterial-ui^1.0.0-beta.30dashboard/assets/package.json
npmmaterial-ui-icons^1.0.0-beta.17dashboard/assets/package.json
npmpath^0.12.7dashboard/assets/package.json
npmreact^16.2.0dashboard/assets/package.json
npmreact-dom^16.2.0dashboard/assets/package.json
npmreact-fa^5.0.0dashboard/assets/package.json
npmreact-transition-group^2.2.1dashboard/assets/package.json
npmrecharts^1.0.0-beta.9dashboard/assets/package.json
npmstyle-loader^0.19.1dashboard/assets/package.json
npmurl^0.11.0dashboard/assets/package.json
npmurl-loader^0.6.2dashboard/assets/package.json
npmwebpack^3.10.0dashboard/assets/package.json
npmwebpack-dev-server^2.11.1dashboard/assets/package.json
All dependencies not collected

The resolved dependency set could not be collected for this report: GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

Raw JSON report machine-readable
{
  "data": {
    "repo": {
      "topics": [],
      "is_fork": true,
      "size_kb": 143925,
      "has_wiki": true,
      "homepage": "https://geth.ethereum.org",
      "languages": {
        "C": 580024,
        "Go": 9784087,
        "M4": 25931,
        "C++": 93764,
        "CSS": 133,
        "HTML": 12773,
        "Java": 30290,
        "NSIS": 23234,
        "Perl": 532,
        "Ruby": 818,
        "Shell": 18771,
        "Python": 36109,
        "Assembly": 32551,
        "Makefile": 12288,
        "Solidity": 14354,
        "Dockerfile": 4269,
        "JavaScript": 476989
      },
      "pushed_at": "2020-03-16T09:54:58Z",
      "created_at": "2018-12-16T17:48:06Z",
      "owner_type": "User",
      "updated_at": "2023-08-24T13:22:36Z",
      "description": "Official Go implementation of the Ethereum protocol",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "LGPL-3.0",
      "default_branch": "master",
      "license_spdx_raw": "LGPL-3.0",
      "primary_language": "Go",
      "significant_languages": [
        "Go"
      ]
    },
    "owner": {
      "blog": "cryptomental.com",
      "name": "CryptoMental",
      "type": "User",
      "login": "cryptomental",
      "company": null,
      "location": "Berlin, Germany.",
      "followers": 46,
      "avatar_url": "https://avatars.githubusercontent.com/u/20819151?v=4",
      "created_at": "2016-08-03T15:08:07Z",
      "is_verified": null,
      "public_repos": 112,
      "account_age_days": 3643
    },
    "license": {
      "state": "standard",
      "spdx_id": "LGPL-3.0",
      "raw_spdx": "LGPL-3.0",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": false
    },
    "activity": {
      "releases": [
        {
          "tag": "v1.7.0",
          "kind": "minor",
          "published_at": "2017-09-14T10:55:42Z"
        },
        {
          "tag": "v1.6.7",
          "kind": "patch",
          "published_at": "2017-07-11T14:32:36Z"
        },
        {
          "tag": "v1.6.6",
          "kind": "patch",
          "published_at": "2017-06-23T09:26:54Z"
        },
        {
          "tag": "v1.6.5",
          "kind": "patch",
          "published_at": "2017-06-01T18:48:47Z"
        },
        {
          "tag": "v1.6.4",
          "kind": "patch",
          "published_at": "2017-06-01T14:33:17Z"
        },
        {
          "tag": "v1.6.3",
          "kind": "patch",
          "published_at": "2017-06-01T08:41:48Z"
        },
        {
          "tag": "v1.6.2",
          "kind": "patch",
          "published_at": "2017-05-31T03:45:13Z"
        },
        {
          "tag": "v1.6.1",
          "kind": "patch",
          "published_at": "2017-05-04T11:11:45Z"
        },
        {
          "tag": "v1.6.0",
          "kind": "minor",
          "published_at": "2017-04-14T10:07:07Z"
        },
        {
          "tag": "v1.5.9",
          "kind": "patch",
          "published_at": "2017-02-13T16:54:59Z"
        },
        {
          "tag": "v1.5.8",
          "kind": "patch",
          "published_at": "2017-02-01T01:14:04Z"
        },
        {
          "tag": "v1.5.7",
          "kind": "patch",
          "published_at": "2017-01-16T09:57:02Z"
        },
        {
          "tag": "v1.5.6",
          "kind": "patch",
          "published_at": "2017-01-09T15:39:27Z"
        },
        {
          "tag": "v1.5.5",
          "kind": "patch",
          "published_at": "2016-12-14T14:06:54Z"
        },
        {
          "tag": "v1.5.4",
          "kind": "patch",
          "published_at": "2016-11-28T13:59:26Z"
        },
        {
          "tag": "v1.5.3",
          "kind": "patch",
          "published_at": "2016-11-24T22:03:13Z"
        },
        {
          "tag": "v1.5.2",
          "kind": "patch",
          "published_at": "2016-11-18T11:01:54Z"
        },
        {
          "tag": "v1.5.1",
          "kind": "patch",
          "published_at": "2016-11-16T12:10:03Z"
        },
        {
          "tag": "v1.5.0",
          "kind": "minor",
          "published_at": "2016-11-15T13:29:33Z"
        },
        {
          "tag": "v1.4.19",
          "kind": "patch",
          "published_at": "2016-11-15T12:46:47Z"
        },
        {
          "tag": "v1.4.18",
          "kind": "patch",
          "published_at": "2016-10-15T11:00:43Z"
        },
        {
          "tag": "v1.4.17",
          "kind": "patch",
          "published_at": "2016-10-10T14:19:05Z"
        },
        {
          "tag": "v1.4.16",
          "kind": "patch",
          "published_at": "2016-10-06T14:25:17Z"
        },
        {
          "tag": "v1.4.15",
          "kind": "patch",
          "published_at": "2016-10-03T08:55:41Z"
        },
        {
          "tag": "v1.4.14",
          "kind": "patch",
          "published_at": "2016-09-28T10:40:44Z"
        },
        {
          "tag": "v1.4.13",
          "kind": "patch",
          "published_at": "2016-09-26T09:40:58Z"
        },
        {
          "tag": "v1.4.12",
          "kind": "patch",
          "published_at": "2016-09-19T01:28:08Z"
        },
        {
          "tag": "v1.4.11",
          "kind": "patch",
          "published_at": "2016-08-18T15:31:35Z"
        },
        {
          "tag": "v1.4.10",
          "kind": "patch",
          "published_at": "2016-07-16T15:52:56Z"
        },
        {
          "tag": "v1.4.9",
          "kind": "patch",
          "published_at": "2016-06-29T12:42:21Z"
        },
        {
          "tag": "v1.4.8",
          "kind": "patch",
          "published_at": "2016-06-24T15:17:12Z"
        },
        {
          "tag": "v1.4.7",
          "kind": "patch",
          "published_at": "2016-06-15T09:33:33Z"
        },
        {
          "tag": "v1.4.6",
          "kind": "patch",
          "published_at": "2016-06-06T14:22:55Z"
        },
        {
          "tag": "v1.4.5",
          "kind": "patch",
          "published_at": "2016-05-24T08:31:56Z"
        },
        {
          "tag": "v1.4.4",
          "kind": "patch",
          "published_at": "2016-05-17T12:59:51Z"
        },
        {
          "tag": "v1.4.3",
          "kind": "patch",
          "published_at": "2016-05-10T11:46:03Z"
        },
        {
          "tag": "v1.4.2",
          "kind": "patch",
          "published_at": "2016-05-09T20:06:27Z"
        },
        {
          "tag": "v1.4.1",
          "kind": "patch",
          "published_at": "2016-05-03T12:05:30Z"
        },
        {
          "tag": "v1.4.0",
          "kind": "minor",
          "published_at": "2016-04-19T16:15:04Z"
        },
        {
          "tag": "v1.3.6",
          "kind": "patch",
          "published_at": "2016-04-01T10:12:59Z"
        },
        {
          "tag": "v1.3.5",
          "kind": "patch",
          "published_at": "2016-03-03T14:22:12Z"
        },
        {
          "tag": "v1.3.4",
          "kind": "patch",
          "published_at": "2016-02-29T14:05:37Z"
        },
        {
          "tag": "v1.3.3",
          "kind": "patch",
          "published_at": "2016-01-05T12:02:07Z"
        },
        {
          "tag": "v1.3.2",
          "kind": "patch",
          "published_at": "2015-11-24T12:48:47Z"
        },
        {
          "tag": "v1.3.1",
          "kind": "patch",
          "published_at": "2015-10-31T19:00:58Z"
        },
        {
          "tag": "v1.2.3",
          "kind": "patch",
          "published_at": "2015-10-21T13:53:54Z"
        },
        {
          "tag": "v1.2.2",
          "kind": "patch",
          "published_at": "2015-10-02T10:55:57Z"
        },
        {
          "tag": "1.2.1",
          "kind": "patch",
          "published_at": "2015-10-01T08:38:43Z"
        },
        {
          "tag": "v1.1.3",
          "kind": "patch",
          "published_at": "2015-09-09T16:48:35Z"
        },
        {
          "tag": "v1.1.2",
          "kind": "patch",
          "published_at": "2015-09-02T22:52:42Z"
        },
        {
          "tag": "v1.1.1",
          "kind": "patch",
          "published_at": "2015-09-01T21:43:22Z"
        },
        {
          "tag": "v1.1.0",
          "kind": "minor",
          "published_at": "2015-08-25T13:54:57Z"
        },
        {
          "tag": "v1.0.5",
          "kind": "patch",
          "published_at": "2015-09-09T16:50:01Z"
        },
        {
          "tag": "v1.0.4",
          "kind": "patch",
          "published_at": "2015-09-02T22:55:58Z"
        },
        {
          "tag": "v1.0.3",
          "kind": "patch",
          "published_at": "2015-09-01T22:29:24Z"
        },
        {
          "tag": "v1.0.2",
          "kind": "patch",
          "published_at": "2015-08-20T19:41:39Z"
        },
        {
          "tag": "v1.0.1",
          "kind": "patch",
          "published_at": "2015-08-05T16:41:08Z"
        },
        {
          "tag": "v1.0.0",
          "kind": "major",
          "published_at": "2015-07-29T13:59:33Z"
        },
        {
          "tag": "v0.9.39",
          "kind": "patch",
          "published_at": "2015-07-25T10:22:39Z"
        },
        {
          "tag": "v0.9.38",
          "kind": "patch",
          "published_at": "2015-07-09T16:06:39Z"
        },
        {
          "tag": "v0.9.36",
          "kind": "patch",
          "published_at": "2015-07-07T13:33:55Z"
        },
        {
          "tag": "v0.9.34",
          "kind": "patch",
          "published_at": "2015-06-30T00:22:19Z"
        },
        {
          "tag": "v0.9.34-1",
          "kind": "prerelease",
          "published_at": "2015-06-30T09:14:59Z"
        },
        {
          "tag": "v0.9.32",
          "kind": "patch",
          "published_at": "2015-06-23T17:19:33Z"
        },
        {
          "tag": "v0.9.30",
          "kind": "patch",
          "published_at": "2015-06-15T17:28:48Z"
        },
        {
          "tag": "v0.9.28",
          "kind": "patch",
          "published_at": "2015-06-09T19:12:25Z"
        },
        {
          "tag": "v0.9.26",
          "kind": "patch",
          "published_at": "2015-05-28T16:21:14Z"
        },
        {
          "tag": "v0.9.25",
          "kind": "patch",
          "published_at": "2015-05-27T00:07:03Z"
        },
        {
          "tag": "v0.9.24",
          "kind": "patch",
          "published_at": "2015-05-26T12:51:41Z"
        },
        {
          "tag": "0.9.23",
          "kind": "patch",
          "published_at": "2015-05-21T17:53:35Z"
        },
        {
          "tag": "v0.9.23",
          "kind": "patch",
          "published_at": "2015-05-21T16:58:57Z"
        },
        {
          "tag": "v0.9.22",
          "kind": "patch",
          "published_at": "2015-05-17T19:35:15Z"
        },
        {
          "tag": "v0.9.21",
          "kind": "patch",
          "published_at": "2015-05-15T22:27:13Z"
        },
        {
          "tag": "v0.9.20",
          "kind": "patch",
          "published_at": "2015-05-12T17:05:33Z"
        },
        {
          "tag": "v0.9.18",
          "kind": "patch",
          "published_at": "2015-05-09T11:13:16Z"
        },
        {
          "tag": "v0.9.17",
          "kind": "patch",
          "published_at": "2015-05-08T15:24:41Z"
        },
        {
          "tag": "0.9.16",
          "kind": "patch",
          "published_at": "2015-05-06T22:03:11Z"
        },
        {
          "tag": "v0.8.5",
          "kind": "patch",
          "published_at": "2015-02-22T12:26:18Z"
        },
        {
          "tag": "v0.8.5-2",
          "kind": "prerelease",
          "published_at": "2015-02-26T19:26:49Z"
        },
        {
          "tag": "v0.8.4",
          "kind": "patch",
          "published_at": "2015-02-20T23:53:47Z"
        },
        {
          "tag": "v0.8.4-1",
          "kind": "prerelease",
          "published_at": "2015-02-20T23:53:39Z"
        },
        {
          "tag": "v0.7.11",
          "kind": "patch",
          "published_at": "2014-12-24T10:30:13Z"
        },
        {
          "tag": "v0.7.10",
          "kind": "patch",
          "published_at": "2014-12-21T14:13:06Z"
        },
        {
          "tag": "v0.6.8",
          "kind": "patch",
          "published_at": "2014-10-07T09:20:52Z"
        },
        {
          "tag": "v0.6.7",
          "kind": "patch",
          "published_at": "2014-09-26T11:47:29Z"
        },
        {
          "tag": "v0.6.6",
          "kind": "patch",
          "published_at": "2014-09-24T18:41:11Z"
        },
        {
          "tag": "v0.6.5",
          "kind": "patch",
          "published_at": "2014-09-22T17:33:24Z"
        },
        {
          "tag": "v0.6.5-2",
          "kind": "prerelease",
          "published_at": "2014-09-23T15:56:43Z"
        },
        {
          "tag": "v0.6.5-1",
          "kind": "prerelease",
          "published_at": "2014-09-23T08:21:39Z"
        },
        {
          "tag": "v0.6.4",
          "kind": "patch",
          "published_at": "2014-08-21T18:23:09Z"
        },
        {
          "tag": "v0.6.3",
          "kind": "patch",
          "published_at": "2014-08-21T13:45:50Z"
        },
        {
          "tag": "v0.6.0",
          "kind": "minor",
          "published_at": "2014-07-25T08:42:14Z"
        },
        {
          "tag": "0.5.19",
          "kind": "patch",
          "published_at": "2014-07-18T11:49:52Z"
        },
        {
          "tag": "0.5.18",
          "kind": "patch",
          "published_at": "2014-07-18T11:49:52Z"
        },
        {
          "tag": "0.5.17",
          "kind": "patch",
          "published_at": "2014-07-17T13:32:44Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "d70c4faf20d5533e30eec5cbb9b5180eb837b78c",
          "body": "* swarm/storage: fix T.Fatal inside a goroutine\r\n\r\n* swarm/network/simulation: fix T.Fatal inside a goroutine\r\n\r\n* swarm/network/stream: fix T.Fatal inside a goroutine\r\n\r\n* swarm/network/simulation: consistent failures in TestPeerEventsTimeout\r\n\r\n* swarm/network/simulation: rename sendRunSignal to triggerSimulationRun",
          "is_bot": false,
          "headline": "swarm: Fix T.Fatal inside a goroutine in tests (#18409)",
          "author_name": "Janoš Guljaš",
          "author_login": "janos",
          "committed_at": "2019-01-09T06:05:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "81f04fa60608a67bac693879acbe086562d3970d",
          "body": null,
          "is_bot": false,
          "headline": "github: remove swarm github codeowners (#18412)",
          "author_name": "Anton Evangelatov",
          "author_login": "nonsense",
          "committed_at": "2019-01-08T21:50:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ae857e74bfda1f961dc5741441e5b36a2bb9aa93",
          "body": "* swarm: completed 1st phase of swap accounting\r\n\r\n* swarm, p2p/protocols: added stream pricing\r\n\r\n* swarm/network/stream: gofmt simplify stream.go\r\n\r\n* swarm: fixed review comments\r\n\r\n* swarm: used snapshots for swap tests\r\n\r\n* swarm: custom retrieve for swap (less cascaded requests at any one time\n[…]\narm/network/stream: added prefix space for comments\r\n\r\n* swarm/network/stream: unit test for prices\r\n\r\n* swarm/network/stream: don't hardcode price\r\n\r\n* swarm/network/stream: fixed invalid price check",
          "is_bot": false,
          "headline": "swarm, p2p/protocols: Stream accounting (#18337)",
          "author_name": "holisticode",
          "author_login": "holisticode",
          "committed_at": "2019-01-07T23:59:00Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "56a3f6c03cc3c7ae38ab7354f8615c014bb2102a",
          "body": null,
          "is_bot": false,
          "headline": "swarm/storage/mock/test: fix T.Fatal inside a goroutine (#18399)",
          "author_name": "Janoš Guljaš",
          "author_login": "janos",
          "committed_at": "2019-01-07T13:32:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "356c49fa7ec88632f839226c9b0f1cf172ec6f9d",
          "body": null,
          "is_bot": false,
          "headline": "swarm: Shed Index and Uint64Field additions (#18398)",
          "author_name": "Janoš Guljaš",
          "author_login": "janos",
          "committed_at": "2019-01-07T12:20:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "428eabe28d1077356b16f25828d78d8693a766bb",
          "body": "* Changed dumpConfig function to optionally save to file\r\n\r\n* Added O_TRUNC flag to file open and cleaned up code",
          "is_bot": false,
          "headline": "cmd/geth: support dumpconfig optionally saving to file (#18327)",
          "author_name": "Sean",
          "author_login": "darcys22",
          "committed_at": "2019-01-07T08:56:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e05d46807525f76dab83f84e9dfc9e4537398641",
          "body": null,
          "is_bot": false,
          "headline": "internal/ethapi: ask transaction pool for pending nonce (#15794)",
          "author_name": "Yondon Fu",
          "author_login": "yondonfu",
          "committed_at": "2019-01-07T08:47:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "aca588a8e434cd0409c44d55b6009fb74e913537",
          "body": null,
          "is_bot": false,
          "headline": "accounts/keystore: small code simplification (#18394)",
          "author_name": "Jeremy Schlatter",
          "author_login": "jeremyschlatter",
          "committed_at": "2019-01-07T08:35:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fe03b76ffe9f9d48b09f4d93f18fae1e5ad4c1f4",
          "body": "* swarm/network: fix code inspection problems\r\n\r\n- typos\r\n- redundant import alias\r\n\r\n* p2p/simulations: fix code inspection problems\r\n\r\n- typos\r\n- unused function parameters\r\n- redundant import alias\r\n- code style issue: snake case\r\n\r\n* swarm/network: fix unused method parameters inspections",
          "is_bot": false,
          "headline": "A few minor code inspection fixes (#18393)",
          "author_name": "Ferenc Szabo",
          "author_login": "frncmx",
          "committed_at": "2019-01-06T10:58:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "072c95fb74ac108e93207a8052e641cfaf863105",
          "body": null,
          "is_bot": false,
          "headline": "accounts/keystore: fix comment typo (#18395)",
          "author_name": "Jeremy Schlatter",
          "author_login": "jeremyschlatter",
          "committed_at": "2019-01-05T20:27:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e8ff318205be2d3e9f793ee876726bf0fbaf579e",
          "body": "* eth/tracer: extend create2\r\n\r\n* eth/tracers: fix create2-flaw in prestate_tracer\r\n\r\n* eth/tracers: fix test\r\n\r\n* eth/tracers: update assets",
          "is_bot": false,
          "headline": "eth/tracer: extend create2 (#18318)",
          "author_name": "gary rong",
          "author_login": "rjl493456442",
          "committed_at": "2019-01-05T20:26:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c1c43011211e70ffdd2a78fb1a467adb5db9f65e",
          "body": "core/types: update incorrect comment",
          "is_bot": false,
          "headline": "Merge pull request #18371 from jeremyschlatter/patch-1",
          "author_name": "Péter Szilágyi",
          "author_login": "karalabe",
          "committed_at": "2019-01-04T08:14:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "391d4cb9b53eb9f71862cbb8a6cca332d5a76f94",
          "body": "vendor, crypto, swarm: switch over to upstream sha3 package",
          "is_bot": false,
          "headline": "Merge pull request #18390 from realdave/remove-sha3-pkg",
          "author_name": "Péter Szilágyi",
          "author_login": "karalabe",
          "committed_at": "2019-01-04T07:51:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3f421aca54bb5216e0f949966481fa4516c52273",
          "body": "…-addresses (#18344)\n\n* cmd/puppeth: fix panic error when export aleth genesis wo/ precompile-addresses\r\n\r\n* cmd/puppeth: don't need to handle duplicate set",
          "is_bot": false,
          "headline": "cmd/puppeth: fix panic error when export aleth genesis wo/ precompile…",
          "author_name": "Ha ĐANG",
          "author_login": "hadv",
          "committed_at": "2019-01-04T07:48:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8ec344bf604a56e4bd313660448345708c5aeb51",
          "body": null,
          "is_bot": false,
          "headline": "vendor: update the entire golang.org/x/crypto dependency",
          "author_name": "Péter Szilágyi",
          "author_login": "karalabe",
          "committed_at": "2019-01-04T07:26:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "33d233d3e18359123993d3f54987441290faf212",
          "body": null,
          "is_bot": false,
          "headline": "vendor, crypto, swarm: switch over to upstream sha3 package",
          "author_name": "Dave McGregor",
          "author_login": "realdave",
          "committed_at": "2019-01-04T07:26:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "49975264a8d37aa9af1a2b71015059245c0c2e0b",
          "body": null,
          "is_bot": false,
          "headline": "swarm/docker: Dockerfile for swarm:edge docker image (#18386)",
          "author_name": "Anton Evangelatov",
          "author_login": "nonsense",
          "committed_at": "2019-01-03T14:32:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1ea5279d5d7cd44ab18d72a2d26f1ad03b8d2b5e",
          "body": "…ed by mksully22) (#18376)",
          "is_bot": false,
          "headline": "vendor: vendor/github.com/mattn/go-isatty - add missing files (report…",
          "author_name": "HackyMiner",
          "author_login": "hackmod",
          "committed_at": "2019-01-03T12:31:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "27913dd226e391b5260ab3b66ce7b75610a07ab7",
          "body": null,
          "is_bot": false,
          "headline": "accounts/abi/bind: add optional block number for calls (#17942)",
          "author_name": "Dragan Milic",
          "author_login": "draganm",
          "committed_at": "2019-01-03T11:54:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ddaf48bf84b3ac54681b09d9dfbf439f6053cbc8",
          "body": "* travis, appveyor: bump to Go 1.11.4\r\n\r\n* internal/build: revert comment changes",
          "is_bot": false,
          "headline": "travis, appveyor: bump to Go 1.11.4 (#18314)",
          "author_name": "Samuel Marks",
          "author_login": "SamuelMarks",
          "committed_at": "2019-01-03T09:32:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "57a90ad450c5021711fd75c393cd119ef3251558",
          "body": "* add LGPL licence at update-licence.go\r\n\r\n* add empty line",
          "is_bot": false,
          "headline": "build: add LGPL license at update-license.go (#18377)",
          "author_name": "Rick",
          "author_login": null,
          "committed_at": "2019-01-03T08:09:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1d284c201d33b2950da7d3c6adde9604095dd5af",
          "body": "…#18379)",
          "is_bot": false,
          "headline": "swarm/storage: change Proximity function and add TestProximity test (…",
          "author_name": "Janoš Guljaš",
          "author_login": "janos",
          "committed_at": "2019-01-03T05:17:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b025053ab03b2e19aee28505029954ca9d158b1d",
          "body": "…dpoint (#18330)",
          "is_bot": false,
          "headline": "rpc: Warn the user when the path name is too long for the Unix ipc en…",
          "author_name": "Martin Alex Philip Dawson",
          "author_login": "MartinDawson",
          "committed_at": "2019-01-02T16:33:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9bfd0b60cc5af3d6b8fdd9fae33ec1c0a4eb31b8",
          "body": null,
          "is_bot": false,
          "headline": "accounts/abi: fix case of generated java functions (#18372)",
          "author_name": "Guillaume Ballet",
          "author_login": "gballet",
          "committed_at": "2019-01-02T09:22:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a4af734328d50b9ea89405c7e5050065a8087946",
          "body": "* accounts/abi: fix name styling when unpacking abi fields w/ underscores\r\n\r\nABI fields with underscores that are being unpacked\r\ninto structs expect structs with following form:\r\n\r\nint_one -> Int_one\r\n\r\nwhereas in abigen the generated structs are camelcased\r\n\r\nint_one -> IntOne\r\n\r\nso updated the unpack method to expect camelcased structs as well.",
          "is_bot": false,
          "headline": "accounts/abi: change unpacking of abi fields w/ underscores (#16513)",
          "author_name": "Matt K",
          "author_login": "mkrump",
          "committed_at": "2018-12-29T10:32:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6537ab5dd3459b4570d5157b702d2ec5f5aadb2e",
          "body": null,
          "is_bot": false,
          "headline": "core/types: update incorrect comment",
          "author_name": "Jeremy Schlatter",
          "author_login": "jeremyschlatter",
          "committed_at": "2018-12-29T01:58:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "735343430dec74a340f5c9a18822537e18165caa",
          "body": null,
          "is_bot": false,
          "headline": "fix string array unpack bug in accounts/abi (#18364)",
          "author_name": "weimumu",
          "author_login": "weimumu",
          "committed_at": "2018-12-28T07:43:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9e9fc87e70accf2b81be8772ab2ab0c914e95666",
          "body": null,
          "is_bot": false,
          "headline": "swarm: remove unused/dead code (#18351)",
          "author_name": "Anton Evangelatov",
          "author_login": "nonsense",
          "committed_at": "2018-12-23T16:31:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "335760bf0674ee553f3ca65afd6f29b6557d1b55",
          "body": "…unction (#17328)",
          "is_bot": false,
          "headline": "accounts/abi: Brings out the msg defined at require statement in SC f…",
          "author_name": "Jeff Prestes",
          "author_login": "jeffprestes",
          "committed_at": "2018-12-22T10:39:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7df52e324c1393f9dad3daa8c724782f4ade5b42",
          "body": null,
          "is_bot": false,
          "headline": "accounts/abi: add support for unpacking returned bytesN arrays (#15242)",
          "author_name": "bas-vk",
          "author_login": "bas-vk",
          "committed_at": "2018-12-22T10:26:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5e4fd8e7dbfe701b3b544c52c433c5d7c2e302c3",
          "body": "* swarm/network: Revised depth calculation with tests\r\n\r\n* swarm/network: WIP remove redundant \"full\" function\r\n\r\n* swarm/network: WIP peerpot refactor\r\n\r\n* swarm/network: Make test methods submethod of peerpot and embed kad\r\n\r\n* swarm/network: Remove commented out code\r\n\r\n* swarm/network: Rename he\n[…]\nc\r\n\r\n* swarm/network: Revert WaitTillHealthy change (deferred to nxt PR)\r\n\r\n* swarm/network: Kademlia tests GotNN => ConnectNN\r\n\r\n* swarm/network: Renames and comments\r\n\r\n* swarm/network: Add comments",
          "is_bot": false,
          "headline": "swarm/network: Revised depth and health for Kademlia (#18354)",
          "author_name": "lash",
          "author_login": "nolash",
          "committed_at": "2018-12-22T05:53:30Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "880de230b44e20282abdef0f1f9a3294ce68e5d8",
          "body": "* p2p/protocols: accounting metrics rpc added (#847)\r\n\r\n* p2p/protocols: accounting api documentation added (#847)\r\n\r\n* p2p/protocols: accounting api doc updated (#847)\r\n\r\n* p2p/protocols: accounting api doc update (#847)\r\n\r\n* p2p/protocols: accounting api doc update (#847)\r\n\r\n* p2p/protocols: fix file is not gofmted\r\n\r\n* fix lint error\r\n\r\n* updated comments after review\r\n\r\n* add account balance to rpc\r\n\r\n* naming changed after review",
          "is_bot": false,
          "headline": "p2p/protocols: accounting metrics rpc (#18336)",
          "author_name": "Jerzy Lasyk",
          "author_login": "JerzyLa",
          "committed_at": "2018-12-22T05:04:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "81c3dc728f946db26a31a6974383b94b11dba977",
          "body": null,
          "is_bot": false,
          "headline": "eth/downloader: progress in stateSync not used anymore (#17998)",
          "author_name": "Wenbiao Zheng",
          "author_login": "jsvisa",
          "committed_at": "2018-12-21T22:36:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ca7c13ba8f8af19f15e84a16e82049f2b32b6b70",
          "body": null,
          "is_bot": false,
          "headline": "swarm/pss: forwarding function refactoring (#18353)",
          "author_name": "gluk256",
          "author_login": "gluk256",
          "committed_at": "2018-12-21T17:04:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e1edfe0689966d5b5fcee530a96c31dd28aea95c",
          "body": "* p2p/simulation: WIP minimal snapshot test\r\n\r\n* p2p/simulation: Add snapshot create, load and verify to snapshot test\r\n\r\n* build: add test tag for tests\r\n\r\n* p2p/simulations, build: Revert travis change, build test sym always\r\n\r\n* p2p/simulations: Add comments, timeout check on additional events\r\n\r\n[…]\ntSnapshot wait for all connections before returning\r\n\r\n* p2p/simulation: Revert to before wait for snap load (5e75594)\r\n\r\n* p2p/simulations: add \"conns after load\" subtest to TestSnapshot\r\n\r\nand nudge",
          "is_bot": false,
          "headline": "p2p/simulation: Test snapshot correctness and minimal benchmark (#18287)",
          "author_name": "lash",
          "author_login": "nolash",
          "committed_at": "2018-12-21T05:22:11Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "27ce4eb78bdf5d9b742ed05babe9b86a434733a1",
          "body": "* core: sanitize more TxPoolConfig fields\r\n\r\n* core: fix TestTransactionPendingMinimumAllowance",
          "is_bot": false,
          "headline": "core: sanitize more TxPoolConfig fields (#17210)",
          "author_name": "Jordan Krage",
          "author_login": "jmank88",
          "committed_at": "2018-12-20T13:00:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5f251a6448b3385015ab531c35071743f93cafae",
          "body": "…#18335)\n\n* downloader: fix edgecase where returned index is OOB for downloader\r\n\r\n* downloader: documentation\r\n\r\nCo-Authored-By: holiman <martin@swende.se>",
          "is_bot": false,
          "headline": "downloader: fix edgecase where returned index is OOB for downloader (…",
          "author_name": "Martin Holst Swende",
          "author_login": "holiman",
          "committed_at": "2018-12-20T09:46:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fe86a707d8270108e0fb77359e702689664dcb4b",
          "body": null,
          "is_bot": false,
          "headline": "swarm/storage: remove unused methods from Chunk interface (#18283)",
          "author_name": "Javier Peletier",
          "author_login": "jpeletier",
          "committed_at": "2018-12-18T14:25:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b01cfce36276379a95deb1001a6f1b6a048609de",
          "body": null,
          "is_bot": false,
          "headline": "swarm/pss: Reduce input vulnerabilities (#18304)",
          "author_name": "lash",
          "author_login": "nolash",
          "committed_at": "2018-12-18T14:23:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "de4265fa028f2b0eb96a21e295028e0d19426adb",
          "body": "…ors (#18263)",
          "is_bot": false,
          "headline": "swarm/network/simulation:commented out unreachable code-avoid vet err…",
          "author_name": "Javier Peletier",
          "author_login": "jpeletier",
          "committed_at": "2018-12-18T06:24:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "90ea542e9efa5ec7652e2b507a7122e5a8e4b91b",
          "body": "* swarm/network/stream: fix visualized_snapshot_sync_sim_test\r\n\r\n* swarm/network/stream: updated visualized snapshot-test;data in p2p event\r\n\r\n* swarm/network/stream: cleanup visualized snapshot sync test\r\n\r\n* swarm/network/stream: re-enable t.Skip for visualized test\r\n\r\n* swarm/network/stream: addressed PR comments",
          "is_bot": false,
          "headline": "Update visualized snapshot test (#18286)",
          "author_name": "holisticode",
          "author_login": "holisticode",
          "committed_at": "2018-12-18T06:20:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "472c23a8015cd84b193d2d0efb4592a664de3c62",
          "body": "… (#18323)",
          "is_bot": false,
          "headline": "p2p/simulation: move connection methods from swarm/network/simulation…",
          "author_name": "Elad",
          "author_login": "acud",
          "committed_at": "2018-12-17T11:19:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d322c9d5504ad3fd4dfeb9dff29e92b35856042f",
          "body": null,
          "is_bot": false,
          "headline": "swarm/storage/feed: remove unused code (#18324)",
          "author_name": "Anton Evangelatov",
          "author_login": "nonsense",
          "committed_at": "2018-12-17T10:32:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3ad73443c7a96c928577234df5c742d53f3293ef",
          "body": "* fix slice unpack bug in accounts/abi",
          "is_bot": false,
          "headline": "fix slice unpack bug in accounts/abi (#18321)",
          "author_name": "weimumu",
          "author_login": "weimumu",
          "committed_at": "2018-12-17T08:50:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7dbb075c07511ccdfd8b428cce1adbc6c146eb18",
          "body": null,
          "is_bot": false,
          "headline": "Change issue labels in bot configs to the new prefixed version (#18311)",
          "author_name": "Felix Lange",
          "author_login": "fjl",
          "committed_at": "2018-12-14T14:06:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "aebf9e2fe7beb6d23db94d0885cc7a1089b15d87",
          "body": null,
          "is_bot": false,
          "headline": ".github: add @gballet as abi codeowner (#18306)",
          "author_name": "Guillaume Ballet",
          "author_login": "gballet",
          "committed_at": "2018-12-14T14:05:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "aad3c67a92cd4f3cc3a885fdc514ba2a7fb3e0a3",
          "body": null,
          "is_bot": false,
          "headline": "p2p/discv5: don't hash findnode target in lookup against table (#18309)",
          "author_name": "yahtoo",
          "author_login": "yahtoo",
          "committed_at": "2018-12-14T13:55:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fe26b2f366693bfd2cff71e81fa5512977affd7b",
          "body": null,
          "is_bot": false,
          "headline": "core/state: rename 'new' variable (#18301)",
          "author_name": "Shuai Qi",
          "author_login": "qshuai",
          "committed_at": "2018-12-14T13:55:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "88d7d4fed4f95df9b81fa6acc66c760e0cb08cd7",
          "body": null,
          "is_bot": false,
          "headline": "Change issue labels in bot configs to the new prefixed version",
          "author_name": "Adam Schmideg",
          "author_login": "adamschmideg",
          "committed_at": "2018-12-14T13:50:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9940d93a43bab1f060e8fbfadff510c3298f2726",
          "body": null,
          "is_bot": false,
          "headline": "Comment error (#18303)",
          "author_name": "qd-ethan",
          "author_login": "qdgogogo",
          "committed_at": "2018-12-14T10:15:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3796751efcc3fab71799450f1bff370d081438ec",
          "body": "…(#18310)",
          "is_bot": false,
          "headline": "rpc: add application/json-rpc as accepted content type, fixes #18293 …",
          "author_name": "Martin Holst Swende",
          "author_login": "holiman",
          "committed_at": "2018-12-14T10:08:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e79821cabeda5c6907f03073d11fe6d83367f494",
          "body": "argument type and name were reversed",
          "is_bot": false,
          "headline": "accounts/abi: argument type and name were reversed (#17947)",
          "author_name": "tzapu",
          "author_login": "tzapu",
          "committed_at": "2018-12-13T14:12:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e57e4571d3382c504a01f87be654d984f26e2dd1",
          "body": null,
          "is_bot": false,
          "headline": "crypto/secp256k1: Fix invalid document link (#18297)",
          "author_name": "Shuai Qi",
          "author_login": "qshuai",
          "committed_at": "2018-12-13T09:25:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b3be9b7cd8f5f0e828d4d2aa6db1216ccd32ce3a",
          "body": "* usbwallet: check returned error when decoding hexstr\r\n\r\n* Update accounts/usbwallet/ledger.go\r\n\r\nCo-Authored-By: CoreyLin <514971757@qq.com>\r\n\r\n* usbwallet: check hex decode error",
          "is_bot": false,
          "headline": "usbwallet: check returned error when decoding hexstr (#18056)",
          "author_name": "Corey Lin",
          "author_login": "CoreyLin",
          "committed_at": "2018-12-13T09:21:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4e6f53ac3360c4e90fdb419e7073e4316b2a49f7",
          "body": null,
          "is_bot": false,
          "headline": "swarm/storage: simplify ChunkValidator interface (#18285)",
          "author_name": "Javier Peletier",
          "author_login": "jpeletier",
          "committed_at": "2018-12-12T15:22:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ebbf3dfafb9af891294fa10c04b3c07dd56d8fdc",
          "body": "* swarm/shed: add metrics to each shed db\r\n\r\n* swarm/shed: push metrics prefix up\r\n\r\n* swarm/shed: rename prefix to metricsPrefix\r\n\r\n* swarm/shed: unexport Meter, remove Mutex for quit channel",
          "is_bot": false,
          "headline": "swarm/shed: add metrics to each shed db (#18277)",
          "author_name": "Anton Evangelatov",
          "author_login": "nonsense",
          "committed_at": "2018-12-12T06:51:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1e190a3b1cf0444b48cc1aa78367e0d28a561c6b",
          "body": null,
          "is_bot": false,
          "headline": "params, swarm: begin Geth v1.9.0 family, Swarm v0.3.9 cycle",
          "author_name": "Péter Szilágyi",
          "author_login": "karalabe",
          "committed_at": "2018-12-11T12:23:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "24d727b6d6e2c0cde222fa12155c4a6db5caaf2e",
          "body": null,
          "is_bot": false,
          "headline": "params, swarm: release Geth v1.8.20 and Swarm v0.3.8",
          "author_name": "Péter Szilágyi",
          "author_login": "karalabe",
          "committed_at": "2018-12-11T12:20:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "83a9a73b899e816a0d1493b7fb1e37abe4bc4566",
          "body": "* geth/core/eth: implement constantinople override flag\r\n\r\n* les: implemnent constantinople override flag for les clients\r\n\r\n* cmd/geth, eth, les: fix typo, move flag to experimentals",
          "is_bot": false,
          "headline": "cmd/geth, core, eth: implement Constantinople override flag (#18273)",
          "author_name": "Martin Holst Swende",
          "author_login": "holiman",
          "committed_at": "2018-12-11T12:19:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5584574217df29f5daf5db70b3d2536ec66a036c",
          "body": "cmd/faucet, cmd/puppeth: fix enode and compose regressions, expose UDP",
          "is_bot": false,
          "headline": "Merge pull request #18281 from karalabe/puppeth-faucet",
          "author_name": "Péter Szilágyi",
          "author_login": "karalabe",
          "committed_at": "2018-12-11T11:55:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "38c3d88cea61361afe332437581dac8b40adbfca",
          "body": null,
          "is_bot": false,
          "headline": "cmd/puppeth: support latest docker compose, expose faucet UDP",
          "author_name": "Péter Szilágyi",
          "author_login": "karalabe",
          "committed_at": "2018-12-11T11:41:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "69a8d9841a62af97d98ad59f8c40e34301946b84",
          "body": null,
          "is_bot": false,
          "headline": "cmd/faucet: fix faucet static peer regression",
          "author_name": "Péter Szilágyi",
          "author_login": "karalabe",
          "committed_at": "2018-12-11T11:41:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bb724080cac9fa36ec6b638cfd5cf0e54bc23362",
          "body": "…warm/api/http: add instrumentation (#18274)",
          "is_bot": false,
          "headline": "cmd/swarm, metrics, swarm/api/client, swarm/storage, swarm/metrics, s…",
          "author_name": "Elad",
          "author_login": "acud",
          "committed_at": "2018-12-11T08:21:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b2aac658b0e366f128eda5e057e8e1bf5ec4e427",
          "body": "params: update CHTs for the 1.8.20 release",
          "is_bot": false,
          "headline": "Merge pull request #18271 from karalabe/1.8.20-chts",
          "author_name": "Péter Szilágyi",
          "author_login": "karalabe",
          "committed_at": "2018-12-10T13:15:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9fe5d200117bab0b2adbcf1d09629879366bcc54",
          "body": "cmd, eth: add support for `--whitelist <blocknum>=<hash>`",
          "is_bot": false,
          "headline": "Merge pull request #18028 from ryanschneider/blockhash-whitelist",
          "author_name": "Péter Szilágyi",
          "author_login": "karalabe",
          "committed_at": "2018-12-10T13:10:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dd98d1da9464c9ae6e1da69d7a41d4551f20bd8d",
          "body": null,
          "is_bot": false,
          "headline": "swarm/network: Correct ambiguity in compared addresses (#18251)",
          "author_name": "lash",
          "author_login": "nolash",
          "committed_at": "2018-12-10T12:56:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "362e2ba792927282c41acda05cb1a7cd34e1c790",
          "body": null,
          "is_bot": false,
          "headline": "params: update CHTs for the 1.8.20 release",
          "author_name": "Péter Szilágyi",
          "author_login": "karalabe",
          "committed_at": "2018-12-10T12:55:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "31b33349227715e8d1f8753d913892c1e35439d7",
          "body": null,
          "is_bot": false,
          "headline": "cmd/utils, eth: minor polishes on whitelist code",
          "author_name": "Péter Szilágyi",
          "author_login": "karalabe",
          "committed_at": "2018-12-10T12:47:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "48b70ecff1152f9eec091ff03b803d997a573b19",
          "body": "* Rejects peers that respond with a different hash for any of the passed in block numbers.\n* Meant for emergency situations when the network forks unexpectedly.",
          "is_bot": false,
          "headline": "cmd, eth: Add support for `--whitelist <blocknum>=<hash>,...` flag",
          "author_name": "Ryan Schneider",
          "author_login": "ryanschneider",
          "committed_at": "2018-12-10T12:30:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c1e3fe6b140c6ac7f9d7c792480a10208a4ac7ec",
          "body": "* Fix typo in interfaces.go\r\n\r\n* Update interfaces.go",
          "is_bot": false,
          "headline": "ethereum: fix typo in interfaces.go (#18266)",
          "author_name": "YOSHIDA Masanori",
          "author_login": "siburu",
          "committed_at": "2018-12-10T12:24:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2fdff338034e3ec990f08708c08a7695c39186d2",
          "body": "light: fix duplicated argument in bytes.Equal call",
          "is_bot": false,
          "headline": "Merge pull request #18269 from Quasilyte/patch-1",
          "author_name": "Péter Szilágyi",
          "author_login": "karalabe",
          "committed_at": "2018-12-10T11:55:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "da6e6e7971b093990b964cd708cceab77898a655",
          "body": "Most probably a copy/paste kind of error.\r\nFound with gocritic `dupArg` checker.",
          "is_bot": false,
          "headline": "light: fix duplicated argument in bytes.Equal call",
          "author_name": "Iskander (Alex) Sharipov",
          "author_login": "quasilyte",
          "committed_at": "2018-12-10T11:29:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "af8daf91a659c05a9c6424752d050f2beca0ee29",
          "body": "node,rpc: remove unused log in ipc listener function",
          "is_bot": false,
          "headline": "node, rpc: log cleanups in ipc listener function (#18124)",
          "author_name": "Péter Szilágyi",
          "author_login": "karalabe",
          "committed_at": "2018-12-10T11:15:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fd66af5ee5020cd61fbb971b294a426da60f62f6",
          "body": "core/vm, eth: add standard json tracing into filesystem dumps",
          "is_bot": false,
          "headline": "Merge pull request #17914 from holiman/block_analysis",
          "author_name": "Péter Szilágyi",
          "author_login": "karalabe",
          "committed_at": "2018-12-10T11:05:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0983d02aa906394fd2be83ebda104730e32c593b",
          "body": null,
          "is_bot": false,
          "headline": "eth, internal/web3ext: tiny polishes in tracers",
          "author_name": "Péter Szilágyi",
          "author_login": "karalabe",
          "committed_at": "2018-12-10T10:33:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "42a914a84ffcc5d123af400c2cbcd34b05e2b0b3",
          "body": "…cal filesystem",
          "is_bot": false,
          "headline": "cmd/evm, core/vm, eth: implement api methods to do stdjson dump to lo…",
          "author_name": "Martin Holst Swende",
          "author_login": "holiman",
          "committed_at": "2018-12-10T10:33:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "09d588e0da77c1ed150d7274f66a67dcaecab80c",
          "body": "params: set mainnet and Rinkeby Constantinople fork blocks",
          "is_bot": false,
          "headline": "Merge pull request #18268 from karalabe/forkit",
          "author_name": "Péter Szilágyi",
          "author_login": "karalabe",
          "committed_at": "2018-12-10T09:46:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6a1a4375c680ba4c9ee49ae7cf1e5ab0ab72bdfb",
          "body": null,
          "is_bot": false,
          "headline": "params: set mainnet and Rinkeby Constantinople fork blocks",
          "author_name": "Péter Szilágyi",
          "author_login": "karalabe",
          "committed_at": "2018-12-10T09:36:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dfa16a3e4e0e0b5b20bfda7b7e89ebd07ea0a1a5",
          "body": "* eth: fixed incorrect storage from prestate_tracer\r\n\r\n* eth/tracers: updated assets.go",
          "is_bot": false,
          "headline": "eth/tracers: fixed incorrect storage from prestate_tracer (#18253)",
          "author_name": "Max Sistemich",
          "author_login": "mafrasi2",
          "committed_at": "2018-12-10T09:17:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c1d462ee5d3a22746e90531e06139b703f0e040f",
          "body": null,
          "is_bot": false,
          "headline": "cmd/puppeth: fix rogue quote in alethGenesisSpec JSON (#18262)",
          "author_name": "Javier Peletier",
          "author_login": "jpeletier",
          "committed_at": "2018-12-10T09:16:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f32790fb0508bb484a100d6e5c81bec2c89bebb1",
          "body": null,
          "is_bot": false,
          "headline": "node: warn when using deprecated config/resource files (#18199)",
          "author_name": "Felix Lange",
          "author_login": "fjl",
          "committed_at": "2018-12-07T13:43:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d2328b604a2d4ecdccc47d8f9133593161cbd40a",
          "body": "cmd/utils: max out the OS file allowance, don't cap to 2K",
          "is_bot": false,
          "headline": "Merge pull request #18211 from karalabe/drop-fd-limit",
          "author_name": "Péter Szilágyi",
          "author_login": "karalabe",
          "committed_at": "2018-12-07T12:10:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "661809714e35f69dea23f713dd1e65cff523344c",
          "body": "* swarm/network: Hive - do not notify peer if discovery is disabled\r\n\r\n* p2p/simulations: validate all connections on loading a snapshot\r\n\r\n* p2p/simulations: track all connections in on snapshot loading\r\n\r\n* p2p/simulations: add snapshotLoadTimeout variable\r\n\r\n* p2p/simulations: ignore control even\n[…]\nad\r\n\r\n* p2p/simulations: simplify event loop synchronization\r\n\r\n* p2p/simulations: return already connected error from Load function\r\n\r\n* p2p/simulations: log warning on snapshot loading disconnection",
          "is_bot": false,
          "headline": "swarm: snapshot load improvement (#18220)",
          "author_name": "Janoš Guljaš",
          "author_login": "janos",
          "committed_at": "2018-12-07T05:51:40Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "de39513ced05f120b30b0daa49003982cc6b2426",
          "body": "Until this commit, when sending an RPC request that called `NewEVM`, a blank `vm.Config`\r\nwould be taken so as to set some options, based on the default configuration. If some extra\r\nconfiguration switches were passed to the blockchain, those would be ignored.\r\n\r\nThis PR adds a function to get the c\n[…]\ns is what is now used\r\nfor RPC calls.\r\n\r\nSome subsequent changes need to be made, see https://github.com/ethereum/go-ethereum/pull/17955#pullrequestreview-182237244\r\nfor the details of the discussion.",
          "is_bot": false,
          "headline": "core, internal, eth, miner, les: Take VM config from BlockChain (#17955)",
          "author_name": "Paweł Bylica",
          "author_login": "chfast",
          "committed_at": "2018-12-06T13:34:49Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3ac633ba8423851a85cb909a1f1f0f3c0d2c5351",
          "body": null,
          "is_bot": false,
          "headline": "swarm/api/http: add resetting timer metrics to requests (#18249)",
          "author_name": "Elad",
          "author_login": "acud",
          "committed_at": "2018-12-05T10:20:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b98d2e9a1c11f797502a3afa711e470a41cbc91d",
          "body": "… (#18246)",
          "is_bot": false,
          "headline": "swarm/network/stream: Debug log instead of Warn for retrieval failure…",
          "author_name": "holisticode",
          "author_login": "holisticode",
          "committed_at": "2018-12-04T17:29:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "92639b676aaa7f262d19081256c43cdb78aa0efd",
          "body": "* added tests for new abi encoding features (#4)\r\n\r\n* added tests from bytes32[][] and string[]\r\n\r\n* added offset to other types\r\n\r\n* formatting\r\n\r\n* Abi/dynamic types (#5)\r\n\r\n* Revert \"Abi/dynamic types (#5)\" (#6)\r\n\r\nThis reverts commit dabca31d797623d43bd780721fc0ad461d24be53.\r\n\r\n* Abi/dynamic typ\n[…]\nup\r\n\r\n* Apply suggestions from code review\r\n\r\napply suggestions\r\n\r\nCo-Authored-By: vedhavyas <vedhavyas.singareddi@gmail.com>\r\n\r\n* added better formatting (#8)\r\n\r\n* review chnages\r\n\r\n* better comments",
          "is_bot": false,
          "headline": "Add packing for dynamic array and slice types (#18051)",
          "author_name": "Vedhavyas Singareddi",
          "author_login": "vedhavyas",
          "committed_at": "2018-12-04T14:27:55Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f74077b4c24a6d1490dc12564d001df57d2a41fe",
          "body": "cmd/puppeth: implement chainspec converters",
          "is_bot": false,
          "headline": "Merge pull request #18172 from holiman/puppeth_converter",
          "author_name": "Péter Szilágyi",
          "author_login": "karalabe",
          "committed_at": "2018-12-04T10:15:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d4415f5e40fbd155adb3e85e4eae5c7db7832694",
          "body": null,
          "is_bot": false,
          "headline": "cmd/puppeth: chain import/export via wizard, minor polishes",
          "author_name": "Péter Szilágyi",
          "author_login": "karalabe",
          "committed_at": "2018-12-04T10:12:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7a5c1b28ddd4ce1e95f6ed01672b9d44dba047f2",
          "body": null,
          "is_bot": false,
          "headline": "whisperv6: remove duplicated code (#18015)",
          "author_name": "Corey Lin",
          "author_login": "CoreyLin",
          "committed_at": "2018-12-03T13:15:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8698fbabf6c7811e8eec6e84512510e9c9a4eb45",
          "body": null,
          "is_bot": false,
          "headline": "cmd/puppeth: implement chainspec converters",
          "author_name": "Martin Holst Swende",
          "author_login": "holiman",
          "committed_at": "2018-12-03T10:34:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a3fd415c0f983cae35c329d97e0b6707561daef6",
          "body": "cmd/puppeth: enforce lowercase network names",
          "is_bot": false,
          "headline": "Merge pull request #18235 from karalabe/puppeth-enforce-lowercase",
          "author_name": "Péter Szilágyi",
          "author_login": "karalabe",
          "committed_at": "2018-12-03T10:23:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4825d9c3dd7d07eadfda8a6d5c18efb67df67088",
          "body": null,
          "is_bot": false,
          "headline": "cmd/puppeth: enforce lowercase network names",
          "author_name": "Péter Szilágyi",
          "author_login": "karalabe",
          "committed_at": "2018-12-03T10:17:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f850123ec7500af732b73c2501f1ef36d80ee01d",
          "body": "Changed http:// to https:// on JSON-RPC link in README.md",
          "is_bot": false,
          "headline": "Changed http:// to https:// on JSON-RPC link (#18224)",
          "author_name": "Marius Kjærstad",
          "author_login": "sandakersmann",
          "committed_at": "2018-12-02T12:03:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "efe5886877d3f171fae5adfd1e5f1c585e16946b",
          "body": null,
          "is_bot": false,
          "headline": "signer/core: Fixes typo of method name in comment. (#18222)",
          "author_name": "vim88",
          "author_login": "vim88",
          "committed_at": "2018-12-02T12:00:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "085f89172f0af9d9685d228ad163d639041f1217",
          "body": null,
          "is_bot": false,
          "headline": "swarm/pss: Add same api interface for all Send* methods (#18218)",
          "author_name": "lash",
          "author_login": "nolash",
          "committed_at": "2018-12-01T06:07:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "54abb97e3be4fb2d6f557758aaa3a8291b0979fe",
          "body": null,
          "is_bot": false,
          "headline": "p2p: use errors.New instead of fmt.Errorf (#18193)",
          "author_name": "needkane",
          "author_login": "needkane",
          "committed_at": "2018-11-30T21:38:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ef8ced4151006c84e77ab8db88cf6fc1bb09a716",
          "body": "Fixes #15101 because hidapi is no longer being called from an\r\ninit function.",
          "is_bot": false,
          "headline": "vendor: update github.com/karalabe/hid (#18213)",
          "author_name": "Felix Lange",
          "author_login": "fjl",
          "committed_at": "2018-11-30T09:22:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7e7781ffaa5c5486c5e7b66dea4986e063524f63",
          "body": "…8189)\n\n* cmd/swarm: add flag for application name (swarm or swarm-private)\r\n\r\n* cmd/swarm/swarm-smoke: return correct exit code\r\n\r\n* cmd/swarm/swarm-smoke: remove colorable\r\n\r\n* remove swarm/grafana_dashboards",
          "is_bot": false,
          "headline": "cmd/swarm: add flag for application name (swarm or swarm-private) (#1…",
          "author_name": "Anton Evangelatov",
          "author_login": "nonsense",
          "committed_at": "2018-11-29T16:43:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cf62bd2e8878d880aa9d5b20c05bb348111f6298",
          "body": null,
          "is_bot": false,
          "headline": "cmd/utils: max out the OS file allowance, don't cap to 2K",
          "author_name": "Péter Szilágyi",
          "author_login": "karalabe",
          "committed_at": "2018-11-29T10:47:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 95,
      "commits_last_year": 0,
      "latest_release_at": "2017-09-14T10:55:42Z",
      "latest_release_tag": "v1.7.0",
      "releases_from_tags": true,
      "days_since_last_push": 2323,
      "active_weeks_last_year": 0,
      "days_since_latest_release": 3237,
      "mean_days_between_releases": 23.6
    },
    "community": {
      "has_readme": false,
      "has_license": false,
      "has_description": false,
      "has_contributing": false,
      "health_percentage": null,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": []
    },
    "popularity": {
      "forks": 1,
      "stars": 0,
      "watchers": 1,
      "fork_history": {
        "days": [
          {
            "date": "2021-07-17",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 1,
        "total_forks": 1
      },
      "star_history": {
        "days": [],
        "complete": true,
        "collected": 0,
        "total_stars": 0,
        "collected_at": null
      },
      "open_issues_and_prs": 0
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "examples"
      ],
      "has_llms_txt": false,
      "has_dockerfile": true,
      "has_mcp_signal": false,
      "bootstrap_files": [
        "Makefile",
        "swarm/dev/Makefile",
        "vendor/github.com/aristanetworks/goarista/Makefile",
        "vendor/github.com/golang/protobuf/proto/Makefile",
        "vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/Makefile",
        "vendor/github.com/opentracing/opentracing-go/Makefile",
        "vendor/github.com/robertkrimen/otto/Makefile",
        "vendor/github.com/robertkrimen/otto/parser/Makefile",
        "vendor/github.com/robertkrimen/otto/token/Makefile",
        "vendor/github.com/uber/jaeger-client-go/Makefile",
        "vendor/golang.org/x/text/language/Makefile",
        "vendor/gopkg.in/sourcemap.v1/Makefile"
      ],
      "api_schema_files": [
        "accounts/usbwallet/internal/trezor/messages.proto",
        "accounts/usbwallet/internal/trezor/types.proto"
      ],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [],
      "largest_source_bytes": 2709329,
      "source_files_sampled": 1152,
      "oversized_source_files": 17,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "dependencies": {
      "manifests": [],
      "advisories": {
        "error": null,
        "scope": null,
        "source": null,
        "findings": [],
        "collected": false,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 0,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [],
      "dependencies": [
        {
          "name": "babel-core",
          "manifest": "dashboard/assets/package.json",
          "ecosystem": "npm",
          "version_constraint": "^6.26.0"
        },
        {
          "name": "babel-eslint",
          "manifest": "dashboard/assets/package.json",
          "ecosystem": "npm",
          "version_constraint": "^8.2.1"
        },
        {
          "name": "babel-loader",
          "manifest": "dashboard/assets/package.json",
          "ecosystem": "npm",
          "version_constraint": "^7.1.2"
        },
        {
          "name": "babel-plugin-transform-class-properties",
          "manifest": "dashboard/assets/package.json",
          "ecosystem": "npm",
          "version_constraint": "^6.24.1"
        },
        {
          "name": "babel-plugin-transform-decorators-legacy",
          "manifest": "dashboard/assets/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.3.4"
        },
        {
          "name": "babel-plugin-transform-flow-strip-types",
          "manifest": "dashboard/assets/package.json",
          "ecosystem": "npm",
          "version_constraint": "^6.22.0"
        },
        {
          "name": "babel-plugin-transform-runtime",
          "manifest": "dashboard/assets/package.json",
          "ecosystem": "npm",
          "version_constraint": "^6.23.0"
        },
        {
          "name": "babel-preset-env",
          "manifest": "dashboard/assets/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.6.1"
        },
        {
          "name": "babel-preset-react",
          "manifest": "dashboard/assets/package.json",
          "ecosystem": "npm",
          "version_constraint": "^6.24.1"
        },
        {
          "name": "babel-preset-stage-0",
          "manifest": "dashboard/assets/package.json",
          "ecosystem": "npm",
          "version_constraint": "^6.24.1"
        },
        {
          "name": "babel-runtime",
          "manifest": "dashboard/assets/package.json",
          "ecosystem": "npm",
          "version_constraint": "^6.26.0"
        },
        {
          "name": "classnames",
          "manifest": "dashboard/assets/package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.2.5"
        },
        {
          "name": "css-loader",
          "manifest": "dashboard/assets/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.28.9"
        },
        {
          "name": "escape-html",
          "manifest": "dashboard/assets/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.0.3"
        },
        {
          "name": "eslint",
          "manifest": "dashboard/assets/package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.16.0"
        },
        {
          "name": "eslint-config-airbnb",
          "manifest": "dashboard/assets/package.json",
          "ecosystem": "npm",
          "version_constraint": "^16.1.0"
        },
        {
          "name": "eslint-loader",
          "manifest": "dashboard/assets/package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.0.0"
        },
        {
          "name": "eslint-plugin-flowtype",
          "manifest": "dashboard/assets/package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.41.0"
        },
        {
          "name": "eslint-plugin-import",
          "manifest": "dashboard/assets/package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.8.0"
        },
        {
          "name": "eslint-plugin-jsx-a11y",
          "manifest": "dashboard/assets/package.json",
          "ecosystem": "npm",
          "version_constraint": "^6.0.3"
        },
        {
          "name": "eslint-plugin-react",
          "manifest": "dashboard/assets/package.json",
          "ecosystem": "npm",
          "version_constraint": "^7.5.1"
        },
        {
          "name": "file-loader",
          "manifest": "dashboard/assets/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.1.6"
        },
        {
          "name": "flow-bin",
          "manifest": "dashboard/assets/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.63.1"
        },
        {
          "name": "flow-bin-loader",
          "manifest": "dashboard/assets/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.0.2"
        },
        {
          "name": "flow-typed",
          "manifest": "dashboard/assets/package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.2.3"
        },
        {
          "name": "material-ui",
          "manifest": "dashboard/assets/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.0.0-beta.30"
        },
        {
          "name": "material-ui-icons",
          "manifest": "dashboard/assets/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.0.0-beta.17"
        },
        {
          "name": "path",
          "manifest": "dashboard/assets/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.12.7"
        },
        {
          "name": "react",
          "manifest": "dashboard/assets/package.json",
          "ecosystem": "npm",
          "version_constraint": "^16.2.0"
        },
        {
          "name": "react-dom",
          "manifest": "dashboard/assets/package.json",
          "ecosystem": "npm",
          "version_constraint": "^16.2.0"
        },
        {
          "name": "react-fa",
          "manifest": "dashboard/assets/package.json",
          "ecosystem": "npm",
          "version_constraint": "^5.0.0"
        },
        {
          "name": "react-transition-group",
          "manifest": "dashboard/assets/package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.2.1"
        },
        {
          "name": "recharts",
          "manifest": "dashboard/assets/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.0.0-beta.9"
        },
        {
          "name": "style-loader",
          "manifest": "dashboard/assets/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.19.1"
        },
        {
          "name": "url",
          "manifest": "dashboard/assets/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.11.0"
        },
        {
          "name": "url-loader",
          "manifest": "dashboard/assets/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.6.2"
        },
        {
          "name": "webpack",
          "manifest": "dashboard/assets/package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.10.0"
        },
        {
          "name": "webpack-dev-server",
          "manifest": "dashboard/assets/package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.11.1"
        }
      ],
      "all_dependencies": {
        "error": "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository",
        "source": null,
        "packages": [],
        "collected": false,
        "truncated": false,
        "total_count": null,
        "direct_count": null,
        "indirect_count": null
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 0,
        "merged_prs": 0,
        "open_issues": 0,
        "closed_ratio": null,
        "closed_issues": 0,
        "closed_unmerged_prs": 0
      },
      "bus_factor": 2,
      "bot_contributors": 0,
      "top_contributors": [
        {
          "type": "User",
          "login": "obscuren",
          "commits": 3951,
          "avatar_url": "https://avatars.githubusercontent.com/u/6264126?v=4"
        },
        {
          "type": "User",
          "login": "karalabe",
          "commits": 1711,
          "avatar_url": "https://avatars.githubusercontent.com/u/129561?v=4"
        },
        {
          "type": "User",
          "login": "fjl",
          "commits": 1021,
          "avatar_url": "https://avatars.githubusercontent.com/u/6915?v=4"
        },
        {
          "type": "User",
          "login": "tgerring",
          "commits": 569,
          "avatar_url": "https://avatars.githubusercontent.com/u/731472?v=4"
        },
        {
          "type": "User",
          "login": "zelig",
          "commits": 373,
          "avatar_url": "https://avatars.githubusercontent.com/u/769725?v=4"
        },
        {
          "type": "User",
          "login": "CJentzsch",
          "commits": 226,
          "avatar_url": "https://avatars.githubusercontent.com/u/8452011?v=4"
        },
        {
          "type": "User",
          "login": "debris",
          "commits": 212,
          "avatar_url": "https://avatars.githubusercontent.com/u/2613714?v=4"
        },
        {
          "type": "User",
          "login": "holiman",
          "commits": 131,
          "avatar_url": "https://avatars.githubusercontent.com/u/142290?v=4"
        },
        {
          "type": "User",
          "login": "zsfelfoldi",
          "commits": 121,
          "avatar_url": "https://avatars.githubusercontent.com/u/9884311?v=4"
        },
        {
          "type": "User",
          "login": "nonsense",
          "commits": 66,
          "avatar_url": "https://avatars.githubusercontent.com/u/50459?v=4"
        }
      ],
      "contributors_sampled": 100,
      "top_contributor_share": 0.425
    },
    "quality_signals": {
      "has_ci": false,
      "has_tests": true,
      "ci_workflows": [],
      "has_docs_dir": false,
      "linter_configs": [
        ".eslintrc"
      ],
      "has_editorconfig": false,
      "has_linter_config": true,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "yarn.lock"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 9,
            "reason": "binaries present in source code",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 0,
            "reason": "branch protection not enabled on development/release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": null,
            "reason": "no pull request found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 0,
            "reason": "Found 0/30 approved changesets -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 64 contributing companies or organizations",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": null,
            "reason": "no workflows found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 0,
            "reason": "no update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 0,
            "reason": "0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": null,
            "reason": "packaging workflow not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 2,
            "reason": "dependency not pinned by hash detected -- score normalized to 2",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 0,
            "reason": "no SAST tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 0,
            "reason": "security policy file not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": null,
            "reason": "no releases found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": null,
            "reason": "No tokens found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 0,
            "reason": "191 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "d70c4faf20d5533e30eec5cbb9b5180eb837b78c",
        "ran_at": "2026-07-26T15:07:12Z",
        "aggregate_score": 1.8,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": null,
      "oldest_open_prs": [],
      "last_merged_pr_at": null,
      "ci_last_conclusion": null,
      "oldest_open_issues": []
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/cryptomental/go-ethereum",
    "host": "github.com",
    "name": "go-ethereum",
    "owner": "cryptomental"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "critical",
      "name": "Overall health",
      "note": "Abandonment Policy applies a 85% multiplier to weighted overall health.",
      "notes": [
        {
          "code": "abandonment_overall_adjustment",
          "params": {
            "cap": 0,
            "pct": 85
          }
        }
      ],
      "value": 24,
      "inputs": {
        "security": 18,
        "vitality": 20,
        "community": 12,
        "governance": 42,
        "engineering": 40,
        "abandonment_cap": null,
        "abandonment_state": "at_risk",
        "abandonment_multiplier": 85,
        "weighted_overall_before_abandonment": 28,
        "overall_after_abandonment_multiplier": 24
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "critical",
        "name": "Vitality",
        "value": 20,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "critical",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 1,
            "inputs": {
              "commits_last_year": 0,
              "human_commit_share": 1,
              "days_since_last_push": 2323,
              "active_weeks_last_year": 0
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 2323 days ago",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 2323
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "0/52 weeks with commits",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "0 commits in the last year",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "at_risk",
            "name": "Release discipline",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 48,
            "inputs": {
              "releases_count": 95,
              "latest_release_tag": "v1.7.0",
              "releases_from_tags": true,
              "days_since_latest_release": 3237,
              "mean_days_between_releases": 23.6
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "95 version tags (no GitHub releases)",
                "points": 16.2,
                "status": "partial",
                "details": [
                  {
                    "code": "version_tags_no_releases",
                    "params": {
                      "count": 95
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 3237 days ago",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 3237
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~23.6 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 23.6
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "cap": null,
              "state": "at_risk",
              "guards": [
                "no_open_demand"
              ],
              "signals": [
                "release_stall",
                "scorecard_unmaintained"
              ],
              "red_flag": true,
              "multiplier_pct": 85,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": 0,
              "unanswered_open_issues": 0,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": 2755,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "no human commit for 2755 days; 2 unmet obligation(s): releases stalled, Scorecard reports it unmaintained",
                "points": 85,
                "status": "partial",
                "details": [
                  {
                    "code": "abandonment_flagged",
                    "params": {
                      "days": 2755,
                      "count": 2,
                      "signals": "releases stalled, Scorecard reports it unmaintained"
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "critical",
        "name": "Community & Adoption",
        "value": 12,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "critical",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 1,
            "inputs": {
              "forks": 1,
              "stars": 0,
              "watchers": 1,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "0 stars",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "1 forks",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "1 watchers",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "critical",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 25,
            "inputs": {
              "has_readme": false,
              "has_license": false,
              "has_contributing": false,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (LGPL-3.0)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "LGPL-3.0"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "at_risk",
        "name": "Sustainability & Governance",
        "value": 42,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "moderate",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 62,
            "inputs": {
              "bus_factor": 2,
              "contributors_sampled": 100,
              "top_contributor_share": 0.425
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "2 contributor(s) cover half of all commits",
                "points": 25.2,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 42% of commits",
                "points": 12.9,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 42
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "100 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 100
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 64 contributing companies or organizations",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "critical",
            "name": "Issue & PR responsiveness",
            "note": "Excluded from scoring (no data or not applicable): Issue resolution, PR acceptance. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "issue_resolution",
                    "pr_acceptance"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 1,
            "inputs": {
              "merged_prs": 0,
              "open_issues": 0,
              "closed_issues": 0,
              "issue_closed_ratio": null,
              "closed_unmerged_prs": 0
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "no issues or no data",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_issues_or_data",
                    "params": {}
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "no decided pull requests or no data",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_decided_prs_or_data",
                    "params": {}
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 0/30 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "name": "Ownership & stewardship",
            "note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "verified_domain"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 59,
            "inputs": {
              "followers": 46,
              "owner_type": "User",
              "is_verified": null,
              "owner_login": "cryptomental",
              "public_repos": 112,
              "account_age_days": 3643
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "personal (user) account",
                "points": 10,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_personal",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": "not applicable to user accounts",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_applicable_to_user_accounts",
                    "params": {}
                  }
                ],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "46 followers of cryptomental",
                "points": 12,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 46,
                      "login": "cryptomental"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "112 public repos, account ~9 yr old",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 112
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 9
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "at_risk",
        "name": "Engineering Quality",
        "value": 40,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "moderate",
            "name": "Engineering practices",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: CI-Tests. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_ci_tests"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 50,
            "inputs": {
              "has_ci": false,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": true,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": ".eslintrc",
                "points": 16,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".eslintrc"
                    }
                  }
                ],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "no pull request found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "critical",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 25,
            "inputs": {
              "topics": [],
              "has_wiki": true,
              "homepage": "https://geth.ethereum.org",
              "has_readme": false,
              "has_docs_dir": false,
              "has_description": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "https://geth.ethereum.org",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "critical",
        "name": "Security",
        "value": 18,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "critical",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): CI-Tests, Dangerous-Workflow, Packaging, Signed-Releases, Token-Permissions. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "ci_tests",
                    "dangerous_workflow",
                    "packaging",
                    "signed_releases",
                    "token_permissions"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 18,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 13,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 5,
              "scorecard_aggregate": 1.8
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "binaries present in source code",
                "points": 6.8,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection not enabled on development/release branches",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "no pull request found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 0/30 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 64 contributing companies or organizations",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no workflows found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "no update tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow not detected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 2",
                "points": 1,
                "status": "partial",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "no SAST tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "No tokens found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "191 existing vulnerabilities detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "excellent",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "review_only_matches": 0,
              "assessed_self_published_locations": 11
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "moderate",
        "name": "AI Readiness",
        "value": 68,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "at_risk",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.8,
              "agent_instruction_files": [],
              "agent_instruction_max_bytes": null
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "no CLAUDE.md / AGENTS.md / editor rules",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_instructions",
                    "params": {}
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "80 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 80,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "good",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 74,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "yarn.lock"
              ],
              "has_dockerfile": true,
              "typed_language": true,
              "bootstrap_files": [
                "Makefile",
                "swarm/dev/Makefile",
                "vendor/github.com/aristanetworks/goarista/Makefile",
                "vendor/github.com/golang/protobuf/proto/Makefile",
                "vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/Makefile",
                "vendor/github.com/opentracing/opentracing-go/Makefile",
                "vendor/github.com/robertkrimen/otto/Makefile",
                "vendor/github.com/robertkrimen/otto/parser/Makefile",
                "vendor/github.com/robertkrimen/otto/token/Makefile",
                "vendor/github.com/uber/jaeger-client-go/Makefile",
                "vendor/golang.org/x/text/language/Makefile",
                "vendor/gopkg.in/sourcemap.v1/Makefile"
              ],
              "has_devcontainer": false,
              "has_linter_config": true,
              "typecheck_configs": [],
              "agent_commit_share": 0,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "Makefile, swarm/dev/Makefile, vendor/github.com/aristanetworks/goarista/Makefile, vendor/github.com/golang/protobuf/proto/Makefile, vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/Makefile, vendor/github.com/opentracing/opentracing-go/Makefile, vendor/github.com/robertkrimen/otto/Makefile, vendor/github.com/robertkrimen/otto/parser/Makefile, vendor/github.com/robertkrimen/otto/token/Makefile, vendor/github.com/uber/jaeger-client-go/Makefile, vendor/golang.org/x/text/language/Makefile, vendor/gopkg.in/sourcemap.v1/Makefile",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Makefile, swarm/dev/Makefile, vendor/github.com/aristanetworks/goarista/Makefile, vendor/github.com/golang/protobuf/proto/Makefile, vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/Makefile, vendor/github.com/opentracing/opentracing-go/Makefile, vendor/github.com/robertkrimen/otto/Makefile, vendor/github.com/robertkrimen/otto/parser/Makefile, vendor/github.com/robertkrimen/otto/token/Makefile, vendor/github.com/uber/jaeger-client-go/Makefile, vendor/golang.org/x/text/language/Makefile, vendor/gopkg.in/sourcemap.v1/Makefile"
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": ".eslintrc",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".eslintrc"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "Go (statically typed)",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "Go"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "Dockerfile, lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Dockerfile, lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "no agent-authored commits among the last 100",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_authored_commits",
                    "params": {
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "no automated dependency updates observed",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_dependency_automation",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 2",
                "points": 2,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 99,
            "inputs": {
              "primary_language": "Go",
              "largest_source_bytes": 2709329,
              "source_files_sampled": 1152,
              "oversized_source_files": 17
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Go (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "Go"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "17/1152 source files over 60KB",
                "points": 54.2,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 1152,
                      "oversized": 17
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "good",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 80,
            "inputs": {
              "example_dirs": [
                "examples"
              ],
              "has_mcp_signal": false,
              "api_schema_files": [
                "accounts/usbwallet/internal/trezor/messages.proto",
                "accounts/usbwallet/internal/trezor/types.proto"
              ]
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": "accounts/usbwallet/internal/trezor/messages.proto, accounts/usbwallet/internal/trezor/types.proto",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "accounts/usbwallet/internal/trezor/messages.proto, accounts/usbwallet/internal/trezor/types.proto"
                    }
                  }
                ],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": "examples",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "examples"
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "Community profile unavailable",
    "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-26T15:07:30.990594Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/c/cryptomental/go-ethereum.svg",
  "full_name": "cryptomental/go-ethereum",
  "license_state": "standard",
  "license_spdx": "LGPL-3.0"
}

Scores are signals, not warranties. They reflect publicly visible practices on GitHub — not a code audit, and not a security guarantee.

Missing data is excluded and weights renormalized, never scored as zero. Methodology is versioned and open: metrics v1.13.0, schema v0.27.0 — full methodology · metrics wiki.

How one result sits in the wider record: aggregate statistics.