Audited, minimal JavaScript implementation of elliptic curve cryptography, including key operations like ECDSA, EdDSA, Schnorr signatures, ECDH, and related building blocks such as hash-to-curve and OPRFs. Useful for developers who need tree-shakeable, TypeScript/JavaScript-friendly curve code with cross-library tests and fuzzing for correctness.
Project status
- Active maintenance: The repo has an upstream push as recently as 2026-06-10, and the project has delivered library updates including v2.2.0 on 2026-04-12, suggesting it is actively maintained right now.
- Update cadence: There was a recent period of activity in 2026 (v2.2.0 in mid-April 2026, plus upstream changes in late June 2026). Compared to the previously listed tag (v2.0.1 on 2025-09-22), the visible gap is on the order of several months, so cadence is not strictly regular, but it is currently active.
AI summary generated
Recent updates
2.2.0
Release 2.2.0 focuses on hardening and type-level compatibility improvements across the library, while adding FROST threshold signatures (RFC 9591). It also introduces additional strictness around ZIP-215 decoding/verification, hash-to-curve edge cases, and various parsing and math routines.
BreakingSecurityFeatures2.0.1
Release 2.0.1 focuses on packaging and API surface adjustments, plus a small behavioral hardening in BLS verification and extra runtime metadata for FFT roots of unity. It also updates @noble/hashes to 2.0.1 and adds explicit submodule exports in package.json to improve TypeScript autocompletion.
BreakingFeatures2.0.0
Release 2.0.0 of noble-curves is a major refactor that makes the package ESM-only, tightens input validation, and reorganizes many curve and signature APIs around Uint8Array-first interfaces. The release notes describe extensive breaking changes for ECDSA and BLS, along with module renames, removals, and stricter formatting rules for signatures and points.
BreakingSecurityFeatures1.9.7
v1.9.7 mainly performs API renames and deprecation work in the EdDSA and Weierstrass abstractions. The release notes explicitly call out an Edwards experimental helper rename, and a Weierstrass type compatibility change, while the code diff also shows a larger refactor to the abstract utils re-exports.
BreakingFeatures1.9.6
Version 1.9.6 focuses on internal curve implementation updates, plus an API surface change to curve length metadata. It adds earlier point precomputations for Weierstrass curves, refactors BLS tower arithmetic, and adjusts Ed448 field configuration to use different bit lengths for ed448 versus decaf448.
Breaking1.9.5
Release 1.9.5 focuses on fixing build/rollup warnings and restoring some previously changed curve aliases (secp256r1, secp384r1, secp521r1). It also mentions additional preparations and deprecations for the future v2 release, including bringing back CURVE.nByteLength.
Features1.9.4
Release 1.9.4 primarily updates TypeScript typings around legacy curve exports. It includes a fix for gh-201 related to `ProjConstructor`, and it adds more deprecation JSDoc annotations ahead of a future v2 cleanup.
1.9.3
Release 1.9.3 is primarily a set of renamings and API adjustments intended to ease migration toward upcoming v2.0, with most backwards behavior preserved via deprecations. It includes curve API improvements like adding `keygen`, enhancing weierstrass endomorphism support, signature coder changes, and a new `curve.info` interface, along with additional test vectors (ACVP).
Features1.9.2
Release 1.9.2 focuses on bugfixes and preparatory refactors for upcoming v2.0. It introduces major internal API/type changes for EdDSA/ECDSA and BLS signatures, and it adds curve/multiplication hardening improvements plus some utilities refactoring.
BreakingSecurityFeatures1.9.1
Release 1.9.1 adds a new experimental FFT/NTT implementation under abstract/fft, and strengthens curve parameter validation during initialization for Edwards and Weierstrass curves. It also adjusts x25519 and x448 input handling to accept more valid key encodings, improves sqrt calculations in abstract/modular, and includes a secp256k1 tree-shaking optimization.
Features