bip39
Bitcoin BIP39: Mnemonic code for generating deterministic keys
Supply chain provenance
Status for the latest visible version.
Without SLSA provenance there is no cryptographic link between this tarball and the public source — the axios compromise (March 2026) relied on exactly this gap.
Maintainers
Accepted risks
Findings the reviewer chose to accept rather than block on.
| Source | Rule | Reason | Accepted by | When |
|---|---|---|---|---|
| dependencies | unvetted-dep:require-json-tree | AI (dependencies): require-json-tree is used as a browserify transform helper for wordlist JSON bundling; phantom-dep finding confirms it is not directly imported at runtime. | ai | |
| dependencies | unvetted-dep:include-folder | AI (dependencies): include-folder is a legitimate browserify/folderify companion for bundling wordlist files; its use is consistent with bip39's documented build pattern. | ai | |
| provenance | no-provenance | AI (provenance): Package is 4400+ days old, predating Sigstore provenance; absence is expected and not a risk signal for this established library. | ai | |
| phantom-deps | phantom-dep:require-json-tree | AI (phantom-deps): require-json-tree is used via the browserify/folderify transform pipeline referenced in package.json config, not via direct import — phantom-dep finding is a stable false positive for this package. | ai | |
| maintainer-change | maintainer-removed | AI (maintainer-change): dcousens removal aligns with the same 2019 maintainer transition; he remains listed as contributor in package.json. No evidence of hostile takeover. | ai | |
| provenance | publisher-changed | AI (provenance): The weilu→junderw transition in 2019 is a documented legitimate handoff; junderw is a well-known bitcoinjs ecosystem maintainer with a clean track record. | ai | |
| publish-pattern | new-deps-added | AI (publish-pattern): safe-buffer is a canonical, widely-trusted Node.js Buffer polyfill appropriate for a crypto library; not a suspicious dependency. | ai | |
| phantom-deps | phantom-dep:@types/node | AI (phantom-deps): @types/node listed as runtime dep is a packaging quirk in this version; it's a types-only package with no runtime behavior. Harmless for this package. | ai | |
| semgrep | semgrep:dynamic-require | AI (semgrep): Dynamic require loads JSON wordlist files from a fixed subdirectory using a controlled language key — not user-controlled input. Stable false positive for this package. | ai | |
| semgrep | semgrep:hex-decode | AI (semgrep): hex decoding in entropyToMnemonic is core BIP39 functionality for processing entropy input; no obfuscation or malicious use. | ai |
Versions (showing 18 of 18)
| Version | Deps | Published |
|---|---|---|
| 3.1.0 | 1 / 8 | |
| 3.0.4 | 4 / 10 | |
| 3.0.3 | 4 / 10 | |
| 3.0.2 | 4 / 10 | |
| 3.0.1 | 4 / 10 | |
| 3.0.0 | 4 / 10 | |
| 2.6.0 | 5 / 5 | |
| 2.5.0 | 5 / 5 | |
| 2.4.0 | 5 / 5 | |
| 2.3.1 | 5 / 5 | |
| 2.3.0 | 4 / 5 | |
| 2.2.0 | 4 / 3 | |
| 2.1.2 | 4 / 3 | |
| 2.1.0 | 1 / 3 | |
| 2.0.0 | 1 / 2 | |
| 1.2.0 | 4 / 2 | |
| 1.1.0 | 3 / 2 | |
| 0.1.0 | 1 / 1 |
v3.0.4
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v3.0.3
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v3.0.2
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v3.0.1
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v3.0.0
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v2.6.0
2 findingsThis version was published by a different npm account than previous versions on 2019-04-01. This could indicate a legitimate maintainer transition or an account compromise.
Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v2.5.0
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v2.4.0
2 findingsThis version was published by a different npm account than previous versions on 2017-08-17. This could indicate a legitimate maintainer transition or an account compromise.
Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v2.3.1
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v2.3.0
2 findingsThis version was published by a different npm account than previous versions on 2017-03-15. This could indicate a legitimate maintainer transition or an account compromise.
Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v2.2.0
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v2.1.2
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v2.1.0
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v2.0.0
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v1.2.0
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v1.1.0
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v0.1.0
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.