Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Bitcoin
  3. noble-curves

noble-curves

MITTypeScript2.2.0

Audited, minimal JavaScript implementation of elliptic curve cryptography with support for multiple curves and signature schemes.

Visit WebsiteGitHubGitHub
899 stars90 forks0 contributors

What is noble-curves?

noble-curves is a JavaScript library that provides audited, minimal implementations of elliptic curve cryptography. It solves the need for a secure, dependency-light cryptographic toolkit in JavaScript environments, offering a wide range of curves and algorithms like ECDSA, EdDSA, Schnorr, BLS, ECDH, and hash-to-curve.

Target Audience

JavaScript and TypeScript developers building applications requiring cryptographic signatures, key exchange, or advanced elliptic curve operations, particularly in security-sensitive domains like blockchain, authentication, and secure messaging.

Value Proposition

Developers choose noble-curves for its independent security audits, minimal bundle size, comprehensive feature set, and adherence to cryptographic standards, all while maintaining high performance and cross-platform compatibility without heavy dependencies.

Overview

Audited & minimal JS implementation of elliptic curve cryptography.

Use Cases

Best For

  • Implementing digital signatures (ECDSA, EdDSA, Schnorr) in web or Node.js applications
  • Building blockchain or cryptocurrency projects requiring secp256k1 or BLS12-381 support
  • Adding secure key exchange (ECDH) to communication protocols
  • Creating passwordless authentication with OPRF (Oblivious Pseudorandom Functions)
  • Developing threshold signature schemes using FROST
  • Hashing data to elliptic curve points for cryptographic protocols like VRF or ZKPs

Not Ideal For

  • Projects requiring absolute constant-time security guarantees, as JavaScript's JIT compiler and garbage collector make timing attacks difficult to mitigate effectively.
  • Teams needing native-level performance for high-throughput cryptographic operations, where WebAssembly or C++ bindings would offer better speed.
  • Applications that rely on frequently updated or bleeding-edge cryptographic standards, as noble-curves practices rare releasing to minimize re-audits, potentially delaying new feature adoption.
  • Developers looking for a drop-in solution with extensive pre-built integrations or GUI components, since the library focuses on low-level primitives and requires manual implementation.

Pros & Cons

Pros

Audited Security

Independently audited by multiple firms like Cure53 and Trail of Bits, with PGP-signed releases and transparent builds, ensuring high trustworthiness for security-critical applications.

Minimal Bundle Size

Tree-shakeable design excludes unused code, resulting in a small footprint (29KB gzipped) and optimal bundle sizes, as highlighted in the README's performance benchmarks.

Wide Curve Support

Implements a comprehensive suite of curves including secp256k1, P-256, ed25519, and BLS12-381, supporting Weierstrass, Edwards, and Montgomery forms for diverse cryptographic needs.

Performance Optimizations

Hand-optimized for JavaScript engine caveats with extensive benchmarking, providing fast operations for signatures and key exchange, as shown in the speed section with M4 benchmarks.

Cross-Platform Compatibility

Works in browsers, Node.js, Deno, and React Native (with polyfills), making it versatile for various JavaScript environments without heavy dependencies.

Cons

JavaScript Timing Vulnerabilities

Admits in the security section that constant-timeness is extremely hard to achieve in JS due to JIT and GC, potentially exposing timing attacks in sensitive applications.

New Features Unaudited

Advanced features like FROST threshold signatures are marked as new and not audited yet, posing potential security risks for early adopters, as warned in the README.

Breaking Changes in Upgrades

Upgrading from v1 to v2 involved significant breaking changes, such as switching to prehashed messages by default and renaming methods, which can disrupt existing implementations and require careful migration.

Dependency on Noble-Hashes

Relies on noble-hashes for cryptographic hashing, adding a dependency that, while minimal, means security audits must cover both libraries, and updates might be tied to its release cycle.

Frequently Asked Questions

Quick Stats

Stars899
Forks90
Contributors0
Open Issues2
Last commit1 day ago
CreatedSince 2022

Tags

#crypto#cryptography-library#typescript#digital-signatures#ed25519#elliptic-curve-cryptography#javascript#cryptography#ecdsa#eddsa#elliptic-curves

Built With

J
JavaScript
T
TypeScript

Links & Resources

Website

Included in

Cryptography6.8kBitcoin1.3k
Auto-fetched 1 hour ago

Related Projects

crypto-jscrypto-js

JavaScript library of crypto standards.

Stars16,393
Forks2,499
Last commit1 year ago
node.bcrypt.jsnode.bcrypt.js

bcrypt for NodeJs

Stars7,795
Forks548
Last commit16 days ago
sjclsjcl

[DEPRECATED] Stanford Javascript Crypto Library

Stars7,220
Forks994
Last commit1 month ago
jsencryptjsencrypt

A tiny (18.5 kB gzip), zero-dependency, Javascript library to perform OpenSSL RSA Encryption, Decryption, and Key Generation.

Stars6,797
Forks2,006
Last commit22 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub