{"_id":"@noble/secp256k1","_rev":"4576658","name":"@noble/secp256k1","description":"Fastest 5KB JS implementation of secp256k1 ECDH & ECDSA signatures compliant with RFC6979","dist-tags":{"latest":"3.0.0","legacy-v1":"1.7.2"},"maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"time":{"modified":"2026-04-10T15:44:52.000Z","created":"2021-11-03T22:41:36.901Z","3.0.0":"2025-08-25T17:32:42.728Z","3.0.0-beta.1":"2025-08-17T12:10:17.463Z","2.3.0":"2025-06-11T19:09:30.061Z","1.7.2":"2025-04-14T11:23:13.962Z","2.2.3":"2025-01-07T21:41:08.025Z","2.2.2":"2025-01-02T19:09:14.162Z","2.2.1":"2025-01-02T01:23:29.588Z","2.2.0":"2025-01-02T01:12:02.898Z","2.1.0":"2024-03-24T11:07:24.278Z","2.0.0":"2023-03-24T09:58:29.664Z","1.7.1":"2023-01-08T19:50:53.019Z","1.7.0":"2022-09-11T16:42:43.290Z","1.6.3":"2022-07-14T09:25:21.914Z","1.6.2":"2022-07-13T14:24:35.533Z","1.6.1":"2022-07-13T10:38:37.510Z","1.6.0":"2022-06-11T22:29:07.166Z","1.5.5":"2022-02-20T04:38:39.861Z","1.5.4":"2022-02-19T02:35:52.884Z","1.5.3":"2022-02-14T16:04:46.247Z","1.5.2":"2022-01-26T15:05:50.757Z","1.5.0":"2022-01-17T23:07:21.778Z","1.4.0":"2022-01-04T23:14:51.142Z","1.3.4":"2021-12-14T14:10:37.036Z","1.3.3":"2021-12-13T14:48:45.647Z","1.3.2":"2021-12-11T20:54:53.720Z","1.3.1":"2021-12-11T10:01:50.247Z","1.3.0":"2021-11-03T22:41:36.901Z"},"users":{},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-secp256k1.git"},"versions":{"3.0.0":{"name":"@noble/secp256k1","version":"3.0.0","description":"Fastest 5KB JS implementation of secp256k1 ECDH & ECDSA signatures compliant with RFC6979","devDependencies":{"@noble/hashes":"2.0.0","@paulmillr/jsbt":"0.4.4","@types/node":"24.2.1","fast-check":"4.2.0","prettier":"3.6.2","typescript":"5.9.2"},"scripts":{"build":"tsc","build:release":"npx --no @paulmillr/jsbt esbuild test/build","bench":"node test/benchmark.ts","format":"prettier --write 'index.ts' 'test/*.{js,ts}'","test":"node --experimental-strip-types --disable-warning=ExperimentalWarning test/index.ts","test:bun":"bun test/index.ts","test:deno":"deno --allow-env --allow-read test/index.ts","test:node20":"cd test; npx tsc; node compiled/test/index.js"},"keywords":["secp256k1","rfc6979","signature","ecdsa","noble","cryptography","elliptic curve","ecc","curve","schnorr","bitcoin","ethereum"],"homepage":"https://paulmillr.com/noble/","funding":"https://paulmillr.com/funding/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-secp256k1.git"},"type":"module","main":"index.js","module":"index.js","types":"index.d.ts","sideEffects":false,"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"license":"MIT","_id":"@noble/secp256k1@3.0.0","gitHead":"059ef9edae9050f7e9d604c824c258eb8d82daa0","bugs":{"url":"https://github.com/paulmillr/noble-secp256k1/issues"},"_nodeVersion":"24.6.0","_npmVersion":"11.5.1","dist":{"shasum":"29711361db8f37b1b7e0b8d80c933013fc887475","size":35586,"noattachment":false,"key":"/@noble/secp256k1/-/@noble/secp256k1-3.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@noble/secp256k1/download/@noble/secp256k1-3.0.0.tgz"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/secp256k1_3.0.0_1756143162504_0.6829283766601069"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-08-25T17:32:42.728Z","publish_time":1756143162728,"_source_registry_name":"default","_cnpm_publish_time":1756143162728},"3.0.0-beta.1":{"name":"@noble/secp256k1","version":"3.0.0-beta.1","description":"Fastest 5KB JS implementation of secp256k1 ECDH & ECDSA signatures compliant with RFC6979","devDependencies":{"@noble/hashes":"2.0.0-beta.5","@paulmillr/jsbt":"0.4.2","@types/node":"24.2.1","fast-check":"4.2.0","micro-bmark":"0.4.2","micro-should":"0.5.3","prettier":"3.6.2","typescript":"5.9.2"},"scripts":{"build":"tsc","build:release":"npx --no @paulmillr/jsbt esbuild test/build","bench":"node test/benchmark.ts","format":"prettier --write 'index.ts' 'test/*.{js,ts}'","test":"node --experimental-strip-types --disable-warning=ExperimentalWarning test/index.ts","test:bun":"bun test/index.ts","test:deno":"deno --allow-env --allow-read test/index.ts","test:node20":"cd test; npx tsc; node compiled/test/index.js"},"keywords":["secp256k1","rfc6979","signature","ecdsa","noble","cryptography","elliptic curve","ecc","curve","schnorr","bitcoin","ethereum"],"homepage":"https://paulmillr.com/noble/","funding":"https://paulmillr.com/funding/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-secp256k1.git"},"type":"module","main":"index.js","module":"index.js","types":"index.d.ts","sideEffects":false,"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"license":"MIT","_id":"@noble/secp256k1@3.0.0-beta.1","readmeFilename":"README.md","gitHead":"9502c7f1d78d4d50ce7efabb410edc888dfdbaa1","bugs":{"url":"https://github.com/paulmillr/noble-secp256k1/issues"},"_nodeVersion":"24.4.1","_npmVersion":"11.4.2","dist":{"shasum":"9879d765ad6a4d5fbf6c45ac0a6ea1e6513fad32","size":34995,"noattachment":false,"key":"/@noble/secp256k1/-/@noble/secp256k1-3.0.0-beta.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/@noble/secp256k1/download/@noble/secp256k1-3.0.0-beta.1.tgz"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/secp256k1_3.0.0-beta.1_1755432617277_0.2961753648457566"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-08-17T12:10:17.463Z","publish_time":1755432617463,"_source_registry_name":"default","_cnpm_publish_time":1755432617463},"2.3.0":{"name":"@noble/secp256k1","version":"2.3.0","description":"Fastest 4KB JS implementation of secp256k1 ECDH & ECDSA signatures compliant with RFC6979","type":"module","main":"index.js","module":"index.js","types":"index.d.ts","sideEffects":false,"scripts":{"build":"tsc","build:release":"npx jsbt esbuild test/build","build:smaller":"cd test/build; npm install terser@5.29.2; npx terser --ecma 2020 -m -c < ../../index.js","lint":"prettier --check 'index.ts' 'test/*.{js,ts}'","format":"prettier --write 'index.ts' 'test/*.{js,ts}'","test":"node test/index.js","test:bun":"bun test/index.js","test:deno":"deno --allow-env --allow-read test/index.js","bench":"node test/benchmark.js","loc":"echo \"`npm run --silent build:min | wc -c` symbols `wc -l < index.ts` LOC, `npm run --silent build:mingz | wc -c`B gzipped\""},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"homepage":"https://paulmillr.com/noble/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-secp256k1.git"},"license":"MIT","devDependencies":{"@noble/hashes":"2.0.0-beta.1","@paulmillr/jsbt":"0.4.1","@types/node":"24.0.0","fast-check":"4.1.1","micro-bmark":"0.4.2","micro-should":"0.5.3","prettier":"3.5.3","typescript":"5.8.3"},"keywords":["secp256k1","rfc6979","signature","ecdsa","noble","cryptography","elliptic curve","ecc","curve","schnorr","bitcoin","ethereum"],"exports":{".":{"types":"./index.d.ts","default":"./index.js"}},"funding":"https://paulmillr.com/funding/","_id":"@noble/secp256k1@2.3.0","gitHead":"f061f790572a82a94f92ed1bed5742099ce00716","bugs":{"url":"https://github.com/paulmillr/noble-secp256k1/issues"},"_nodeVersion":"22.16.0","_npmVersion":"10.9.2","dist":{"shasum":"ddfe6e853472fb88cba4d5e59b7067adc1e64adf","size":28642,"noattachment":false,"key":"/@noble/secp256k1/-/@noble/secp256k1-2.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@noble/secp256k1/download/@noble/secp256k1-2.3.0.tgz"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/secp256k1_2.3.0_1749668969663_0.8069585994854154"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-06-11T19:09:30.061Z","publish_time":1749668970061,"_source_registry_name":"default","_cnpm_publish_time":1749668970061},"1.7.2":{"name":"@noble/secp256k1","version":"1.7.2","description":"Fastest JS implementation of secp256k1. Independently audited, high-security, 0-dependency ECDSA & Schnorr signatures","main":"lib/index.js","module":"lib/esm/index.js","types":"lib/index.d.ts","scripts":{"build":"tsc && tsc -p tsconfig.esm.json","build:release":"rollup -c rollup.config.js","lint":"prettier --print-width 100 --single-quote --check index.ts","format":"prettier --print-width 100 --single-quote --write index.ts","test":"jest","coverage":"jest --coverage","bench":"node test/benchmark.js"},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"homepage":"https://paulmillr.com/noble/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-secp256k1.git"},"license":"MIT","browser":{"crypto":false},"devDependencies":{"@noble/hashes":"1.1.2","@rollup/plugin-commonjs":"22.0.0","@rollup/plugin-node-resolve":"13.3.0","@types/jest":"28.1.1","@types/node":"17.0.18","fast-check":"3.0.0","jest":"28.1.0","micro-bmark":"0.2.0","prettier":"2.6.2","rollup":"2.75.5","ts-jest":"28.0.4","typescript":"4.7.3"},"keywords":["secp256k1","secp","secp256","elliptic","elliptic curve","curve","signature","ecc","rfc6979","schnorr","sig","bip0340","bip340","ecdsa","endomorphism","cryptography","security","noble"],"exports":{".":{"types":"./lib/index.d.ts","import":"./lib/esm/index.js","default":"./lib/index.js"}},"jest":{"testRegex":"/test/.*?\\.ts","transform":{"^.+\\.ts$":"ts-jest"}},"funding":[{"url":"https://paulmillr.com/funding/","type":"individual"}],"_id":"@noble/secp256k1@1.7.2","readmeFilename":"README.md","gitHead":"14aa2cdd265b2934d309480127e494d4956b7d00","bugs":{"url":"https://github.com/paulmillr/noble-secp256k1/issues"},"_nodeVersion":"23.10.0","_npmVersion":"10.9.2","dist":{"shasum":"c2c3343e2dce80e15a914d7442147507f8a98e7f","size":28444,"noattachment":false,"key":"/@noble/secp256k1/-/@noble/secp256k1-1.7.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/@noble/secp256k1/download/@noble/secp256k1-1.7.2.tgz"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/secp256k1_1.7.2_1744629793792_0.4879985530517592"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-04-14T11:23:13.962Z","publish_time":1744629793962,"_source_registry_name":"default","_cnpm_publish_time":1744629793962},"2.2.3":{"name":"@noble/secp256k1","version":"2.2.3","description":"Fastest 4KB JS implementation of secp256k1 ECDH & ECDSA signatures compliant with RFC6979","type":"module","main":"index.js","module":"index.js","types":"index.d.ts","sideEffects":false,"scripts":{"build":"tsc","build:min":"cd test/build; npm install; npm run terser","build:mingz":"npm run --silent build:min | gzip -c8","build:release":"npm run --silent build:min > test/build/noble-secp256k1.min.js; npm run --silent build:mingz > test/build/noble-secp256k1.min.js.gz","test":"node test/index.js","test:webcrypto":"node test/index.webcrypto.js","bench":"node test/benchmark.js","loc":"echo \"`npm run --silent build:min | wc -c` symbols `wc -l < index.ts` LOC, `npm run --silent build:mingz | wc -c`B gzipped\""},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"homepage":"https://paulmillr.com/noble/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-secp256k1.git"},"license":"MIT","devDependencies":{"@noble/hashes":"1.7.0","@paulmillr/jsbt":"0.2.1","fast-check":"3.0.0","micro-bmark":"0.3.1","micro-should":"0.4.0","typescript":"5.5.2"},"keywords":["secp256k1","rfc6979","signature","ecdsa","noble","cryptography","elliptic curve","ecc","curve","schnorr","bitcoin","ethereum"],"exports":{".":{"types":"./index.d.ts","default":"./index.js"}},"funding":"https://paulmillr.com/funding/","_id":"@noble/secp256k1@2.2.3","gitHead":"65c1cab5ceb53cc0bb912483314dd4fc32cf283c","bugs":{"url":"https://github.com/paulmillr/noble-secp256k1/issues"},"_nodeVersion":"20.18.1","_npmVersion":"11.0.0","dist":{"shasum":"c505ced542328ed13315a8d811684d042f7acc5b","size":27016,"noattachment":false,"key":"/@noble/secp256k1/-/@noble/secp256k1-2.2.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/@noble/secp256k1/download/@noble/secp256k1-2.2.3.tgz"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/secp256k1_2.2.3_1736286067837_0.029021707149834874"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-01-07T21:41:08.025Z","publish_time":1736286068025,"_source_registry_name":"default","_cnpm_publish_time":1736286068025},"2.2.2":{"name":"@noble/secp256k1","version":"2.2.2","description":"Fastest 4KB JS implementation of secp256k1 ECDH & ECDSA signatures compliant with RFC6979","type":"module","main":"index.js","module":"index.js","types":"index.d.ts","sideEffects":false,"scripts":{"build":"tsc","build:min":"cd test/build; npm install; npm run terser","build:mingz":"npm run --silent build:min | gzip -c8","build:release":"npm run --silent build:min > test/build/noble-secp256k1.min.js; npm run --silent build:mingz > test/build/noble-secp256k1.min.js.gz","test":"node test/index.js","test:webcrypto":"node test/index.webcrypto.js","bench":"node test/benchmark.js","loc":"echo \"`npm run --silent build:min | wc -c` symbols `wc -l < index.ts` LOC, `npm run --silent build:mingz | wc -c`B gzipped\""},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"homepage":"https://paulmillr.com/noble/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-secp256k1.git"},"license":"MIT","devDependencies":{"@noble/hashes":"1.6.1","@paulmillr/jsbt":"0.2.1","fast-check":"3.0.0","micro-bmark":"0.3.1","micro-should":"0.4.0","typescript":"5.5.2"},"keywords":["secp256k1","rfc6979","signature","ecdsa","noble","cryptography","elliptic curve","ecc","curve","schnorr","bitcoin","ethereum"],"exports":{".":{"types":"./index.d.ts","default":"./index.js"}},"funding":"https://paulmillr.com/funding/","_id":"@noble/secp256k1@2.2.2","gitHead":"22fe33f064dff66ccf651b37f0d20ccd51a35277","bugs":{"url":"https://github.com/paulmillr/noble-secp256k1/issues"},"_nodeVersion":"20.18.1","_npmVersion":"11.0.0","dist":{"shasum":"1dea2a2e63b9228db7148577cc7442b04669f5c8","size":26459,"noattachment":false,"key":"/@noble/secp256k1/-/@noble/secp256k1-2.2.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/@noble/secp256k1/download/@noble/secp256k1-2.2.2.tgz"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/secp256k1_2.2.2_1735844953954_0.18866833465211297"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-01-02T19:09:14.162Z","publish_time":1735844954162,"_source_registry_name":"default","_cnpm_publish_time":1735844954162},"2.2.1":{"name":"@noble/secp256k1","version":"2.2.1","description":"Fastest 4KB JS implementation of secp256k1 ECDH & ECDSA signatures compliant with RFC6979","type":"module","main":"index.js","module":"index.js","types":"index.d.ts","sideEffects":false,"scripts":{"build":"tsc","build:min":"cd test/build; npm install; npm run terser","build:mingz":"npm run --silent build:min | gzip -c8","build:release":"npm run --silent build:min > test/build/noble-secp256k1.min.js; npm run --silent build:mingz > test/build/noble-secp256k1.min.js.gz","test":"node test/index.js","test:webcrypto":"node test/index.webcrypto.js","bench":"node test/benchmark.js","loc":"echo \"`npm run --silent build:min | wc -c` symbols `wc -l < index.ts` LOC, `npm run --silent build:mingz | wc -c`B gzipped\""},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"homepage":"https://paulmillr.com/noble/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-secp256k1.git"},"license":"MIT","devDependencies":{"@noble/hashes":"1.6.1","@paulmillr/jsbt":"0.2.1","fast-check":"3.0.0","micro-bmark":"0.3.1","micro-should":"0.4.0","typescript":"5.5.2"},"keywords":["secp256k1","rfc6979","signature","ecdsa","noble","cryptography","elliptic curve","ecc","curve","schnorr","bitcoin","ethereum"],"exports":{".":{"types":"./index.d.ts","default":"./index.js"}},"funding":"https://paulmillr.com/funding/","_id":"@noble/secp256k1@2.2.1","gitHead":"c6a85206b25aee6f572cd5cf0bdcfeb443eec5db","bugs":{"url":"https://github.com/paulmillr/noble-secp256k1/issues"},"_nodeVersion":"20.18.1","_npmVersion":"11.0.0","dist":{"shasum":"94b68513f7ec7ac17b45df6b9adb459329797dbc","size":25878,"noattachment":false,"key":"/@noble/secp256k1/-/@noble/secp256k1-2.2.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/@noble/secp256k1/download/@noble/secp256k1-2.2.1.tgz"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/secp256k1_2.2.1_1735781009360_0.08412265677747599"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-01-02T01:23:29.588Z","publish_time":1735781009588,"_source_registry_name":"default","_cnpm_publish_time":1735781009588},"2.2.0":{"name":"@noble/secp256k1","version":"2.2.0","description":"Fastest 4KB JS implementation of secp256k1 ECDH & ECDSA signatures compliant with RFC6979","type":"module","main":"index.js","module":"index.js","types":"index.d.ts","sideEffects":false,"scripts":{"build":"tsc","build:min":"cd test/build; npm install; npm run terser","build:mingz":"npm run --silent build:min | gzip -c8","build:release":"npm run --silent build:min > test/build/noble-secp256k1.min.js; npm run --silent build:mingz > test/build/noble-secp256k1.min.js.gz","test":"node test/index.js","test:webcrypto":"node test/index.webcrypto.js","bench":"node test/benchmark.js","loc":"echo \"`npm run --silent build:min | wc -c` symbols `wc -l < index.ts` LOC, `npm run --silent build:mingz | wc -c`B gzipped\""},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"homepage":"https://paulmillr.com/noble/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-secp256k1.git"},"license":"MIT","devDependencies":{"@noble/hashes":"1.6.1","@paulmillr/jsbt":"0.2.1","fast-check":"3.0.0","micro-bmark":"0.3.1","micro-should":"0.4.0","typescript":"5.5.2"},"keywords":["secp256k1","rfc6979","signature","ecdsa","noble","cryptography","elliptic curve","ecc","curve","schnorr","bitcoin","ethereum"],"exports":{".":{"types":"./index.d.ts","default":"./index.js"}},"funding":"https://paulmillr.com/funding/","_id":"@noble/secp256k1@2.2.0","gitHead":"dbd5d6fdc68164c984773577133ef56a4be5fefe","bugs":{"url":"https://github.com/paulmillr/noble-secp256k1/issues"},"_nodeVersion":"20.18.1","_npmVersion":"11.0.0","dist":{"shasum":"cdbf6eada4b6017f60a633db2a2d49d3a78711e8","size":25875,"noattachment":false,"key":"/@noble/secp256k1/-/@noble/secp256k1-2.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@noble/secp256k1/download/@noble/secp256k1-2.2.0.tgz"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/secp256k1_2.2.0_1735780322683_0.9050259720386133"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-01-02T01:12:02.898Z","publish_time":1735780322898,"_source_registry_name":"default","_cnpm_publish_time":1735780322898},"2.1.0":{"name":"@noble/secp256k1","version":"2.1.0","description":"Fastest 4KB JS implementation of secp256k1 ECDH & ECDSA signatures compliant with RFC6979","type":"module","main":"index.js","module":"index.js","types":"index.d.ts","sideEffects":false,"scripts":{"build":"tsc","build:min":"cd test/build; npm install; npm run terser","build:mingz":"npm run --silent build:min | gzip -c8","build:release":"npm run --silent build:min > test/build/noble-secp256k1.min.js; npm run --silent build:mingz > test/build/noble-secp256k1.min.js.gz","test":"node test/index.test.js","test:webcrypto":"node test/secp256k1.webcrypto.test.js","bench":"node test/benchmark.js","loc":"echo \"`npm run --silent build:min | wc -c` symbols `wc -l < index.ts` LOC, `npm run --silent build:mingz | wc -c`B gzipped\""},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"homepage":"https://paulmillr.com/noble/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-secp256k1.git"},"license":"MIT","devDependencies":{"@noble/hashes":"1.4.0","@paulmillr/jsbt":"0.1.0","fast-check":"3.0.0","micro-bmark":"0.3.0","micro-should":"0.4.0","typescript":"5.3.2"},"keywords":["secp256k1","rfc6979","signature","ecdsa","noble","cryptography","elliptic curve","ecc","curve","schnorr","bitcoin","ethereum"],"exports":{".":{"types":"./index.d.ts","default":"./index.js"}},"funding":"https://paulmillr.com/funding/","_id":"@noble/secp256k1@2.1.0","gitHead":"29e0cf17385a6642b6b68c7095a643c86ee5243d","bugs":{"url":"https://github.com/paulmillr/noble-secp256k1/issues"},"_nodeVersion":"20.11.1","_npmVersion":"10.5.0","dist":{"shasum":"71d829a0b8ce84aea137708f82273977eea84597","size":24969,"noattachment":false,"key":"/@noble/secp256k1/-/@noble/secp256k1-2.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@noble/secp256k1/download/@noble/secp256k1-2.1.0.tgz"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/secp256k1_2.1.0_1711278444017_0.14829258926335087"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-03-24T11:07:24.278Z","publish_time":1711278444278,"_source_registry_name":"default","_cnpm_publish_time":1711278444278},"2.0.0":{"name":"@noble/secp256k1","version":"2.0.0","description":"Fastest 4KB JS implementation of secp256k1 elliptic curve. Auditable, high-security, 0-dependency ECDH & ECDSA signatures compliant with RFC6979","type":"module","main":"index.js","module":"index.js","types":"index.d.ts","scripts":{"build":"tsc","build:release":"rollup -c rollup.config.js","test":"node test/secp256k1.test.mjs","bench":"node test/benchmark.js","min":"cd test/build; npm install; npm run terser","loc":"echo \"`npm run --silent min | wc -c` symbols `wc -l < index.ts` LOC, `npm run --silent min | gzip -c8 | wc -c`B gzipped\""},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"homepage":"https://paulmillr.com/noble/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-secp256k1.git"},"license":"MIT","devDependencies":{"@noble/hashes":"1.3.0","fast-check":"3.0.0","micro-bmark":"0.3.0","micro-should":"0.4.0","typescript":"5.0.2"},"keywords":["secp256k1","rfc6979","signature","ecdsa","noble","cryptography","elliptic curve","ecc","curve","schnorr","bitcoin","ethereum"],"exports":{".":{"types":"./index.d.ts","default":"./index.js"}},"funding":[{"type":"individual","url":"https://paulmillr.com/funding/"}],"gitHead":"d38ed222f1a6d5d296a9e4f815a1c174e46c335f","bugs":{"url":"https://github.com/paulmillr/noble-secp256k1/issues"},"_id":"@noble/secp256k1@2.0.0","_nodeVersion":"19.6.0","_npmVersion":"9.4.0","dist":{"shasum":"c214269d45e0233ad6a8ae5104655453636e253d","size":24276,"noattachment":false,"key":"/@noble/secp256k1/-/@noble/secp256k1-2.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@noble/secp256k1/download/@noble/secp256k1-2.0.0.tgz"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/secp256k1_2.0.0_1679651909466_0.463168039278514"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-03-24T09:58:29.664Z","publish_time":1679651909664,"_cnpm_publish_time":1679651909664},"1.7.1":{"name":"@noble/secp256k1","version":"1.7.1","description":"Fastest JS implementation of secp256k1. Independently audited, high-security, 0-dependency ECDSA & Schnorr signatures","main":"lib/index.js","module":"lib/esm/index.js","types":"lib/index.d.ts","scripts":{"build":"tsc && tsc -p tsconfig.esm.json","build:release":"rollup -c rollup.config.js","lint":"prettier --print-width 100 --single-quote --check index.ts","format":"prettier --print-width 100 --single-quote --write index.ts","test":"jest","coverage":"jest --coverage","bench":"node test/benchmark.js"},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"homepage":"https://paulmillr.com/noble/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-secp256k1.git"},"license":"MIT","browser":{"crypto":false},"devDependencies":{"@noble/hashes":"1.1.2","@rollup/plugin-commonjs":"22.0.0","@rollup/plugin-node-resolve":"13.3.0","@types/jest":"28.1.1","@types/node":"17.0.18","fast-check":"3.0.0","jest":"28.1.0","micro-bmark":"0.2.0","prettier":"2.6.2","rollup":"2.75.5","ts-jest":"28.0.4","typescript":"4.7.3"},"keywords":["secp256k1","secp","secp256","elliptic","elliptic curve","curve","signature","ecc","rfc6979","schnorr","sig","bip0340","bip340","ecdsa","endomorphism","cryptography","security","noble"],"exports":{".":{"types":"./lib/index.d.ts","import":"./lib/esm/index.js","default":"./lib/index.js"}},"jest":{"testRegex":"/test/.*?\\.ts","transform":{"^.+\\.ts$":"ts-jest"}},"funding":[{"type":"individual","url":"https://paulmillr.com/funding/"}],"gitHead":"fd51da079a21195963d0feb1fe7c035d7703b6a8","bugs":{"url":"https://github.com/paulmillr/noble-secp256k1/issues"},"_id":"@noble/secp256k1@1.7.1","_nodeVersion":"18.10.0","_npmVersion":"8.19.2","dist":{"shasum":"b251c70f824ce3ca7f8dc3df08d58f005cc0507c","size":27989,"noattachment":false,"key":"/@noble/secp256k1/-/@noble/secp256k1-1.7.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/@noble/secp256k1/download/@noble/secp256k1-1.7.1.tgz"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/secp256k1_1.7.1_1673207452845_0.314891758625061"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-01-08T19:50:53.019Z","publish_time":1673207453019,"_cnpm_publish_time":1673207453019},"1.7.0":{"name":"@noble/secp256k1","version":"1.7.0","description":"Fastest JS implementation of secp256k1. Independently audited, high-security, 0-dependency ECDSA & Schnorr signatures","main":"lib/index.js","module":"lib/esm/index.js","types":"lib/index.d.ts","scripts":{"build":"tsc && tsc -p tsconfig.esm.json","build:release":"rollup -c rollup.config.js","lint":"prettier --print-width 100 --single-quote --check index.ts","format":"prettier --print-width 100 --single-quote --write index.ts","test":"jest","coverage":"jest --coverage","bench":"node test/benchmark.js"},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"homepage":"https://paulmillr.com/noble/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-secp256k1.git"},"license":"MIT","browser":{"crypto":false},"devDependencies":{"@noble/hashes":"1.1.2","@rollup/plugin-commonjs":"22.0.0","@rollup/plugin-node-resolve":"13.3.0","@types/jest":"28.1.1","@types/node":"17.0.18","fast-check":"3.0.0","jest":"28.1.0","micro-bmark":"0.2.0","prettier":"2.6.2","rollup":"2.75.5","ts-jest":"28.0.4","typescript":"4.7.3"},"keywords":["secp256k1","secp","secp256","elliptic","elliptic curve","curve","signature","ecc","rfc6979","schnorr","sig","bip0340","bip340","ecdsa","endomorphism","cryptography","security","noble"],"exports":{".":{"types":"./lib/index.d.ts","import":"./lib/esm/index.js","default":"./lib/index.js"}},"jest":{"testRegex":"/test/.*?\\.ts","transform":{"^.+\\.ts$":"ts-jest"}},"funding":[{"type":"individual","url":"https://paulmillr.com/funding/"}],"gitHead":"37e66841eb155d21b4fe6658223140d5d7d5176e","bugs":{"url":"https://github.com/paulmillr/noble-secp256k1/issues"},"_id":"@noble/secp256k1@1.7.0","_nodeVersion":"18.8.0","_npmVersion":"8.18.0","dist":{"shasum":"d15357f7c227e751d90aa06b05a0e5cf993ba8c1","size":26878,"noattachment":false,"key":"/@noble/secp256k1/-/@noble/secp256k1-1.7.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@noble/secp256k1/download/@noble/secp256k1-1.7.0.tgz"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/secp256k1_1.7.0_1662914563130_0.08116980657597805"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-09-11T16:43:51.474Z","publish_time":1662914563290,"_cnpm_publish_time":1662914563290},"1.6.3":{"name":"@noble/secp256k1","version":"1.6.3","description":"Fastest JS implementation of secp256k1. Independently audited, high-security, 0-dependency ECDSA & Schnorr signatures","main":"lib/index.js","module":"lib/esm/index.js","types":"lib/index.d.ts","scripts":{"build":"tsc && tsc -p tsconfig.esm.json","build:release":"rollup -c rollup.config.js","lint":"prettier --print-width 100 --single-quote --check index.ts","format":"prettier --print-width 100 --single-quote --write index.ts","test":"jest","coverage":"jest --coverage","bench":"node test/benchmark.js"},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"homepage":"https://paulmillr.com/noble/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-secp256k1.git"},"license":"MIT","browser":{"crypto":false},"devDependencies":{"@noble/hashes":"~1.1.0","@rollup/plugin-commonjs":"22.0.0","@rollup/plugin-node-resolve":"13.3.0","@types/jest":"28.1.1","@types/node":"17.0.18","fast-check":"3.0.0","jest":"28.1.0","micro-bmark":"0.1.3","prettier":"2.6.2","rollup":"2.75.5","ts-jest":"28.0.4","typescript":"4.7.3"},"keywords":["secp256k1","secp","secp256","elliptic","elliptic curve","curve","signature","ecc","rfc6979","schnorr","sig","bip0340","bip340","ecdsa","endomorphism","cryptography","security","noble"],"exports":{".":{"types":"./lib/index.d.ts","import":"./lib/esm/index.js","default":"./lib/index.js"}},"jest":{"testRegex":"/test/.*?\\.ts","transform":{"^.+\\.ts$":"ts-jest"}},"funding":[{"type":"individual","url":"https://paulmillr.com/funding/"}],"gitHead":"c564ad77705066738bd540ad8047723265e78471","bugs":{"url":"https://github.com/paulmillr/noble-secp256k1/issues"},"_id":"@noble/secp256k1@1.6.3","_nodeVersion":"18.3.0","_npmVersion":"8.11.0","dist":{"shasum":"7eed12d9f4404b416999d0c87686836c4c5c9b94","size":26416,"noattachment":false,"key":"/@noble/secp256k1/-/@noble/secp256k1-1.6.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/@noble/secp256k1/download/@noble/secp256k1-1.6.3.tgz"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/secp256k1_1.6.3_1657790721743_0.15157899676583586"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-07-14T10:14:03.803Z","publish_time":1657790721914,"_cnpm_publish_time":1657790721914},"1.6.2":{"name":"@noble/secp256k1","version":"1.6.2","description":"Fastest JS implementation of secp256k1. Independently audited, high-security, 0-dependency ECDSA & Schnorr signatures","main":"lib/index.js","module":"lib/esm/index.js","types":"lib/index.d.ts","scripts":{"build":"tsc -d && tsc -p tsconfig.esm.json","build:release":"rollup -c rollup.config.js","lint":"prettier --print-width 100 --single-quote --check index.ts","format":"prettier --print-width 100 --single-quote --write index.ts","test":"jest","coverage":"jest --coverage","bench":"node test/benchmark.js"},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"homepage":"https://paulmillr.com/noble/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-secp256k1.git"},"license":"MIT","browser":{"crypto":false},"devDependencies":{"@noble/hashes":"~1.1.0","@rollup/plugin-commonjs":"22.0.0","@rollup/plugin-node-resolve":"13.3.0","@types/jest":"28.1.1","@types/node":"17.0.18","fast-check":"3.0.0","jest":"28.1.0","micro-bmark":"0.1.3","prettier":"2.6.2","rollup":"2.75.5","ts-jest":"28.0.4","typescript":"4.7.3"},"keywords":["secp256k1","secp","secp256","elliptic","elliptic curve","curve","signature","ecc","rfc6979","schnorr","sig","bip0340","bip340","ecdsa","endomorphism","cryptography","security","noble"],"exports":{".":{"types":"./lib/index.d.ts","import":"./lib/esm/index.js","default":"./lib/index.js"}},"jest":{"testRegex":"/test/.*?\\.ts","transform":{"^.+\\.ts$":"ts-jest"}},"funding":[{"type":"individual","url":"https://paulmillr.com/funding/"}],"gitHead":"e9bd34346d4b36d3baabf414db69171f7c0fb62e","bugs":{"url":"https://github.com/paulmillr/noble-secp256k1/issues"},"_id":"@noble/secp256k1@1.6.2","_nodeVersion":"18.3.0","_npmVersion":"8.11.0","dist":{"shasum":"ee040d2a290febc2342f39790b0e40723fd8dcb8","size":26406,"noattachment":false,"key":"/@noble/secp256k1/-/@noble/secp256k1-1.6.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/@noble/secp256k1/download/@noble/secp256k1-1.6.2.tgz"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/secp256k1_1.6.2_1657722275274_0.9968045193544428"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-07-13T15:18:33.359Z","publish_time":1657722275533,"_cnpm_publish_time":1657722275533},"1.6.1":{"name":"@noble/secp256k1","version":"1.6.1","description":"Fastest JS implementation of secp256k1. Independently audited, high-security, 0-dependency ECDSA & Schnorr signatures","main":"lib/index.js","module":"lib/esm/index.js","types":"lib/index.d.ts","scripts":{"build":"tsc -d && tsc -p tsconfig.esm.json","build:release":"rollup -c rollup.config.js","lint":"prettier --print-width 100 --single-quote --check index.ts","format":"prettier --print-width 100 --single-quote --write index.ts","test":"jest","coverage":"jest --coverage","bench":"node test/benchmark.js"},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"homepage":"https://paulmillr.com/noble/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-secp256k1.git"},"license":"MIT","browser":{"crypto":false},"devDependencies":{"@noble/hashes":"~1.1.0","@rollup/plugin-commonjs":"22.0.0","@rollup/plugin-node-resolve":"13.3.0","@types/jest":"28.1.1","@types/node":"17.0.18","fast-check":"3.0.0","jest":"28.1.0","micro-bmark":"0.1.3","prettier":"2.6.2","rollup":"2.75.5","ts-jest":"28.0.4","typescript":"4.7.3"},"keywords":["secp256k1","secp","secp256","elliptic","elliptic curve","curve","signature","ecc","rfc6979","schnorr","sig","bip0340","bip340","ecdsa","endomorphism","cryptography","security","noble"],"exports":{".":{"types":"./lib/index.d.ts","import":"./lib/esm/index.js","default":"./lib/index.js"}},"jest":{"testRegex":"/test/.*?\\.ts","transform":{"^.+\\.ts$":"ts-jest"}},"funding":[{"type":"individual","url":"https://paulmillr.com/funding/"}],"gitHead":"568e4797d06331f38fbcb2462d5d832c670b40e0","bugs":{"url":"https://github.com/paulmillr/noble-secp256k1/issues"},"_id":"@noble/secp256k1@1.6.1","_nodeVersion":"18.3.0","_npmVersion":"8.11.0","dist":{"shasum":"6e58c353bda64f9f1ec6d4067af127e6528d5be6","size":26412,"noattachment":false,"key":"/@noble/secp256k1/-/@noble/secp256k1-1.6.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/@noble/secp256k1/download/@noble/secp256k1-1.6.1.tgz"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/secp256k1_1.6.1_1657708717320_0.4496364527316925"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-07-13T11:23:46.270Z","publish_time":1657708717510,"_cnpm_publish_time":1657708717510},"1.6.0":{"name":"@noble/secp256k1","version":"1.6.0","description":"Fastest JS implementation of secp256k1. Independently audited, high-security, 0-dependency ECDSA & Schnorr signatures","main":"lib/index.js","module":"lib/esm/index.js","types":"lib/index.d.ts","scripts":{"build":"tsc -d && tsc -p tsconfig.esm.json","build:release":"rollup -c rollup.config.js","lint":"prettier --print-width 100 --single-quote --check index.ts","format":"prettier --print-width 100 --single-quote --write index.ts","test":"jest","coverage":"jest --coverage","bench":"node test/benchmark.js"},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"homepage":"https://paulmillr.com/noble/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-secp256k1.git"},"license":"MIT","browser":{"crypto":false},"devDependencies":{"@noble/hashes":"~1.0.0","@rollup/plugin-commonjs":"22.0.0","@rollup/plugin-node-resolve":"13.3.0","@types/jest":"28.1.1","@types/node":"17.0.18","fast-check":"3.0.0","jest":"28.1.0","micro-bmark":"0.1.3","prettier":"2.6.2","rollup":"2.75.5","ts-jest":"28.0.4","typescript":"4.7.3"},"keywords":["secp256k1","secp","secp256","elliptic","elliptic curve","curve","signature","ecc","rfc6979","schnorr","sig","bip0340","bip340","ecdsa","endomorphism","cryptography","security","noble"],"exports":{".":{"import":"./lib/esm/index.js","default":"./lib/index.js"},"./index.d.ts":"./lib/index.d.ts"},"jest":{"testRegex":"/test/.*?\\.ts","transform":{"^.+\\.ts$":"ts-jest"}},"funding":[{"type":"individual","url":"https://paulmillr.com/funding/"}],"gitHead":"5bea862db522d0147e512f7e3ac7425bd698d3e4","bugs":{"url":"https://github.com/paulmillr/noble-secp256k1/issues"},"_id":"@noble/secp256k1@1.6.0","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"shasum":"602afbbfcfb7e169210469b697365ef740d7e930","size":26423,"noattachment":false,"key":"/@noble/secp256k1/-/@noble/secp256k1-1.6.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@noble/secp256k1/download/@noble/secp256k1-1.6.0.tgz"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/secp256k1_1.6.0_1654986547030_0.11265343520713422"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-06-11T22:29:11.773Z","publish_time":1654986547166,"_cnpm_publish_time":1654986547166},"1.5.5":{"name":"@noble/secp256k1","version":"1.5.5","description":"Fastest JS implementation of secp256k1. Independently audited, high-security, 0-dependency ECDSA & Schnorr signatures","main":"lib/index.js","module":"lib/esm/index.js","types":"lib/index.d.ts","scripts":{"build":"tsc -d && tsc -p tsconfig.esm.json","build:release":"rollup -c rollup.config.js","lint":"prettier --print-width 100 --single-quote --check index.ts","test":"jest","coverage":"jest --coverage","bench":"node test/benchmark.js"},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"homepage":"https://paulmillr.com/noble/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-secp256k1.git"},"license":"MIT","browser":{"crypto":false},"devDependencies":{"@noble/hashes":"~1.0.0","@rollup/plugin-commonjs":"21.0.1","@rollup/plugin-node-resolve":"13.1.3","@types/jest":"27.4.0","@types/node":"17.0.18","fast-check":"2.14.0","jest":"27.4.5","micro-bmark":"0.1.3","prettier":"2.5.1","rollup":"2.67.2","ts-jest":"27.1.3","typescript":"4.5.4"},"keywords":["secp256k1","secp","secp256","elliptic","elliptic curve","curve","signature","ecc","rfc6979","schnorr","sig","bip0340","bip340","ecdsa","endomorphism","cryptography","security","noble"],"exports":{".":{"import":"./lib/esm/index.js","default":"./lib/index.js"},"./index.d.ts":"./lib/index.d.ts"},"jest":{"testRegex":"/test/.*?\\.ts","transform":{"^.+\\.ts$":"ts-jest"}},"funding":[{"type":"individual","url":"https://paulmillr.com/funding/"}],"gitHead":"5d7ce29de8d23e15dc2bd8aac439806255310c04","bugs":{"url":"https://github.com/paulmillr/noble-secp256k1/issues"},"_id":"@noble/secp256k1@1.5.5","_nodeVersion":"17.4.0","_npmVersion":"8.4.0","dist":{"shasum":"315ab5745509d1a8c8e90d0bdf59823ccf9bcfc3","size":25285,"noattachment":false,"key":"/@noble/secp256k1/-/@noble/secp256k1-1.5.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/@noble/secp256k1/download/@noble/secp256k1-1.5.5.tgz"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/secp256k1_1.5.5_1645331919688_0.2595300237949052"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-02-20T04:38:45.326Z","publish_time":1645331919861,"_cnpm_publish_time":1645331919861},"1.5.4":{"name":"@noble/secp256k1","version":"1.5.4","description":"Fastest JS implementation of secp256k1. Independently audited, high-security, 0-dependency ECDSA & Schnorr signatures","main":"lib/index.js","module":"lib/esm/index.js","types":"lib/index.d.ts","scripts":{"build":"tsc -d && tsc -p tsconfig.esm.json","build:release":"rollup -c rollup.config.js","lint":"prettier --print-width 100 --single-quote --check index.ts","test":"jest","coverage":"jest --coverage","bench":"node test/benchmark.js"},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"homepage":"https://paulmillr.com/noble/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-secp256k1.git"},"license":"MIT","browser":{"crypto":false},"devDependencies":{"@noble/hashes":"~1.0.0","@rollup/plugin-commonjs":"21.0.1","@rollup/plugin-node-resolve":"13.1.3","@types/jest":"27.4.0","@types/node":"17.0.18","fast-check":"2.14.0","jest":"27.4.5","micro-bmark":"0.1.3","prettier":"2.5.1","rollup":"2.67.2","ts-jest":"27.1.3","typescript":"4.5.4"},"keywords":["secp256k1","secp","secp256","elliptic","elliptic curve","curve","signature","ecc","rfc6979","schnorr","sig","bip0340","bip340","ecdsa","endomorphism","cryptography","security","noble"],"exports":{".":{"import":"./lib/esm/index.js","default":"./lib/index.js"},"./index.d.ts":"./lib/index.d.ts"},"jest":{"testRegex":"/test/.*?\\.ts","transform":{"^.+\\.ts$":"ts-jest"}},"funding":[{"type":"individual","url":"https://paulmillr.com/funding/"}],"gitHead":"790ce37b7d4015229de83b92f657bf364324234e","bugs":{"url":"https://github.com/paulmillr/noble-secp256k1/issues"},"_id":"@noble/secp256k1@1.5.4","_nodeVersion":"17.4.0","_npmVersion":"8.4.0","dist":{"shasum":"81c4942fcf84fd8c77ad8a7e6d12ce43c6795652","size":25349,"noattachment":false,"key":"/@noble/secp256k1/-/@noble/secp256k1-1.5.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/@noble/secp256k1/download/@noble/secp256k1-1.5.4.tgz"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/secp256k1_1.5.4_1645238152710_0.8359587343539565"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-02-19T02:36:01.776Z","publish_time":1645238152884,"_cnpm_publish_time":1645238152884},"1.5.3":{"name":"@noble/secp256k1","version":"1.5.3","description":"Fastest JS implementation of secp256k1. Independently audited, high-security, 0-dependency ECDSA & Schnorr signatures","main":"lib/index.js","module":"lib/esm/index.js","types":"lib/index.d.ts","scripts":{"build":"tsc -d && tsc -p tsconfig.esm.json","build:release":"rollup -c rollup.config.js","lint":"prettier --print-width 100 --single-quote --check index.ts","test":"jest","coverage":"jest --coverage","bench":"node test/benchmark.js"},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"homepage":"https://paulmillr.com/noble/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-secp256k1.git"},"license":"MIT","browser":{"crypto":false},"devDependencies":{"@noble/hashes":"~1.0.0","@rollup/plugin-commonjs":"^21.0.0","@rollup/plugin-node-resolve":"^13.0.0","@types/jest":"^27","@types/node":"^16","fast-check":"^2.14.0","jest":"^27.4.5","micro-bmark":"^0.1.3","prettier":"^2.5.1","rollup":"^2.62.0","ts-jest":"^27.1.2","typescript":"4.5.4"},"keywords":["secp256k1","secp","secp256","elliptic","elliptic curve","curve","signature","ecc","rfc6979","schnorr","sig","bip0340","bip340","ecdsa","endomorphism","cryptography","security","noble"],"exports":{".":{"import":"./lib/esm/index.js","default":"./lib/index.js"},"./index.d.ts":"./lib/index.d.ts"},"jest":{"testRegex":"/test/.*?\\.ts","transform":{"^.+\\.ts$":"ts-jest"}},"funding":[{"type":"individual","url":"https://paulmillr.com/funding/"}],"gitHead":"6f1899a3d0e23cd81dc425bd0f7069d27f411b14","bugs":{"url":"https://github.com/paulmillr/noble-secp256k1/issues"},"_id":"@noble/secp256k1@1.5.3","_nodeVersion":"17.4.0","_npmVersion":"8.4.0","dist":{"shasum":"887fa88d72f5caa1b7300873e8d4c9eaca029cec","size":25135,"noattachment":false,"key":"/@noble/secp256k1/-/@noble/secp256k1-1.5.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/@noble/secp256k1/download/@noble/secp256k1-1.5.3.tgz"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/secp256k1_1.5.3_1644854686091_0.608555457587252"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-02-14T16:04:56.114Z","publish_time":1644854686247,"_cnpm_publish_time":1644854686247},"1.5.2":{"name":"@noble/secp256k1","version":"1.5.2","description":"Fastest JS implementation of secp256k1. Independently audited, high-security, 0-dependency ECDSA & Schnorr signatures","main":"lib/index.js","module":"lib/esm/index.js","types":"lib/index.d.ts","scripts":{"build":"tsc -d && tsc -p tsconfig.esm.json","build:release":"rollup -c rollup.config.js","lint":"prettier --print-width 100 --single-quote --check index.ts","test":"jest","coverage":"jest --coverage","bench":"node test/benchmark.js"},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"homepage":"https://paulmillr.com/noble/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-secp256k1.git"},"license":"MIT","browser":{"crypto":false},"devDependencies":{"@noble/hashes":"~1.0.0","@rollup/plugin-commonjs":"^21.0.0","@rollup/plugin-node-resolve":"^13.0.0","@types/jest":"^27","@types/node":"^16","fast-check":"^2.14.0","jest":"^27.4.5","micro-bmark":"^0.1.3","prettier":"^2.5.1","rollup":"^2.62.0","ts-jest":"^27.1.2","typescript":"4.5.4"},"keywords":["secp256k1","secp","secp256","elliptic","elliptic curve","curve","signature","ecc","rfc6979","schnorr","sig","bip0340","bip340","ecdsa","endomorphism","cryptography","security","noble"],"exports":{".":{"import":"./lib/esm/index.js","default":"./lib/index.js"},"./index.d.ts":"./lib/index.d.ts"},"jest":{"testRegex":"/test/.*?\\.ts","transform":{"^.+\\.ts$":"ts-jest"}},"funding":[{"type":"individual","url":"https://paulmillr.com/funding/"}],"gitHead":"fe665f652b08f30948fb2b66949c4e94e64e3f6e","bugs":{"url":"https://github.com/paulmillr/noble-secp256k1/issues"},"_id":"@noble/secp256k1@1.5.2","_nodeVersion":"16.13.2","_npmVersion":"8.3.2","dist":{"shasum":"40399e4fba54f588fda14fc03a4499044fdcab24","size":24816,"noattachment":false,"key":"/@noble/secp256k1/-/@noble/secp256k1-1.5.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/@noble/secp256k1/download/@noble/secp256k1-1.5.2.tgz"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/secp256k1_1.5.2_1643209550595_0.4494706907330428"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-01-26T15:06:24.618Z","publish_time":1643209550757,"_cnpm_publish_time":1643209550757},"1.5.0":{"name":"@noble/secp256k1","version":"1.5.0","description":"Fastest JS implementation of secp256k1. Independently audited, high-security, 0-dependency ECDSA & Schnorr signatures","main":"lib/index.js","module":"lib/esm/index.js","types":"lib/index.d.ts","scripts":{"build":"tsc -d && tsc -p tsconfig.esm.json","build:release":"rollup -c rollup.config.js","lint":"prettier --print-width 100 --single-quote --check index.ts","test":"jest","coverage":"jest --coverage","bench":"node test/benchmark.js"},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"homepage":"https://paulmillr.com/noble/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-secp256k1.git"},"license":"MIT","browser":{"crypto":false},"devDependencies":{"@noble/hashes":"~1.0.0","@rollup/plugin-commonjs":"^21.0.0","@rollup/plugin-node-resolve":"^13.0.0","@types/jest":"^27","@types/node":"^16","fast-check":"^2.14.0","jest":"^27.4.5","micro-bmark":"^0.1.3","prettier":"^2.5.1","rollup":"^2.62.0","ts-jest":"^27.1.2","typescript":"4.5.4"},"keywords":["secp256k1","secp","secp256","elliptic","elliptic curve","curve","signature","ecc","rfc6979","schnorr","sig","bip0340","bip340","ecdsa","endomorphism","cryptography","security","noble"],"exports":{".":{"import":"./lib/esm/index.js","default":"./lib/index.js"},"./index.d.ts":"./lib/index.d.ts"},"jest":{"testRegex":"/test/.*?\\.ts","transform":{"^.+\\.ts$":"ts-jest"}},"gitHead":"321134970d97a5852f2983b65974ad6efb5db8b2","bugs":{"url":"https://github.com/paulmillr/noble-secp256k1/issues"},"_id":"@noble/secp256k1@1.5.0","_nodeVersion":"16.13.1","_npmVersion":"8.1.2","dist":{"shasum":"e7acba13a5d026e87387a5da4906722592274e03","size":24692,"noattachment":false,"key":"/@noble/secp256k1/-/@noble/secp256k1-1.5.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@noble/secp256k1/download/@noble/secp256k1-1.5.0.tgz"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/secp256k1_1.5.0_1642460841631_0.7846029068333957"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-01-17T23:07:28.577Z","publish_time":1642460841778,"_cnpm_publish_time":1642460841778},"1.4.0":{"name":"@noble/secp256k1","version":"1.4.0","description":"Fastest JS implementation of secp256k1. Independently audited, high-security, 0-dependency ECDSA & Schnorr signatures","main":"lib/index.js","module":"lib/esm/index.js","types":"lib/index.d.ts","scripts":{"build":"tsc -d && tsc -p tsconfig.esm.json","build-release":"rollup -c rollup.config.js","lint":"prettier --print-width 100 --single-quote --check index.ts","test":"jest","coverage":"jest --coverage","bench":"node test/benchmark.js"},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"homepage":"https://paulmillr.com/noble/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-secp256k1.git"},"license":"MIT","browser":{"crypto":false},"devDependencies":{"@noble/hashes":"^0.5.6","@rollup/plugin-commonjs":"^21.0.0","@rollup/plugin-node-resolve":"^13.0.0","@types/jest":"^27","@types/node":"^16","fast-check":"^2.14.0","jest":"^27.4.5","micro-bmark":"^0.1.3","prettier":"^2.5.1","rollup":"^2.62.0","ts-jest":"^27.1.2","typescript":"4.5.4"},"keywords":["secp256k1","secp","secp256","elliptic","elliptic curve","curve","signature","ecc","rfc6979","schnorr","sig","bip0340","bip340","ecdsa","endomorphism","cryptography","security","noble"],"exports":{".":{"import":"./lib/esm/index.js","default":"./lib/index.js"},"./index.d.ts":"./lib/index.d.ts"},"jest":{"testRegex":"/test/.*?\\.ts","transform":{"^.+\\.ts$":"ts-jest"}},"gitHead":"5bdc2b2d516cc87e6676ac02c7022b06f657d558","bugs":{"url":"https://github.com/paulmillr/noble-secp256k1/issues"},"_id":"@noble/secp256k1@1.4.0","_nodeVersion":"16.13.1","_npmVersion":"8.1.2","dist":{"shasum":"b6b1529552c38e42908a88e39ac691598e741cf9","size":23882,"noattachment":false,"key":"/@noble/secp256k1/-/@noble/secp256k1-1.4.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@noble/secp256k1/download/@noble/secp256k1-1.4.0.tgz"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/secp256k1_1.4.0_1641338090975_0.7653652376539282"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-01-04T23:15:00.617Z","publish_time":1641338091142,"_cnpm_publish_time":1641338091142},"1.3.4":{"name":"@noble/secp256k1","version":"1.3.4","description":"Fastest JS implementation of secp256k1. Independently audited, high-security, 0-dependency ECDSA & Schnorr signatures","main":"lib/index.js","module":"lib/esm/index.js","types":"lib/index.d.ts","scripts":{"build":"tsc -d && tsc -p tsconfig.esm.json","build-release":"rollup -c rollup.config.js","lint":"prettier --print-width 100 --single-quote --check index.ts","test":"jest","coverage":"jest --coverage","bench":"node test/benchmark.js"},"jest":{"testRegex":"/test/.*?\\.ts","transform":{"^.+\\.ts$":"ts-jest"}},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"homepage":"https://paulmillr.com/posts/noble-secp256k1-fast-ecc/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-secp256k1.git"},"license":"MIT","browser":{"crypto":false},"devDependencies":{"@rollup/plugin-node-resolve":"^13.0.0","@types/jest":"^27","@types/node":"^16.3.3","fast-check":"^2.14.0","jest":"^27","micro-bmark":"^0.1.3","noble-hashes":"^0.2.0","prettier":"^2.2.1","rollup":"^2.53.2","ts-jest":"^27","typescript":"~4.3.5"},"keywords":["secp256k1","secp","secp256","elliptic","elliptic curve","curve","signature","ecc","rfc6979","schnorr","sig","bip0340","bip340","ecdsa","endomorphism","cryptography","security","noble"],"exports":{".":{"import":"./lib/esm/index.js","default":"./lib/index.js"},"./index.d.ts":"./lib/index.d.ts"},"gitHead":"de952ca8795c29262d31d045467f36328246833a","bugs":{"url":"https://github.com/paulmillr/noble-secp256k1/issues"},"_id":"@noble/secp256k1@1.3.4","_nodeVersion":"17.0.1","_npmVersion":"8.1.0","dist":{"shasum":"158ded712d09237c0d3428be60dc01ce8ebab9fb","size":23246,"noattachment":false,"key":"/@noble/secp256k1/-/@noble/secp256k1-1.3.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/@noble/secp256k1/download/@noble/secp256k1-1.3.4.tgz"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/secp256k1_1.3.4_1639491036851_0.5019145450735685"},"_hasShrinkwrap":false,"publish_time":1639491037036,"_cnpm_publish_time":1639491037036,"_cnpmcore_publish_time":"2021-12-15T17:13:46.320Z"},"1.3.3":{"name":"@noble/secp256k1","version":"1.3.3","description":"Fastest JS implementation of secp256k1. Independently audited, high-security, 0-dependency ECDSA & Schnorr signatures","main":"lib/index.js","module":"lib/esm/index.js","types":"lib/index.d.ts","scripts":{"build":"tsc -d && tsc -p tsconfig.esm.json","build-release":"rollup -c rollup.config.js","lint":"prettier --print-width 100 --single-quote --check index.ts","test":"jest","coverage":"jest --coverage","bench":"node test/benchmark.js"},"jest":{"testRegex":"/test/.*?\\.ts","transform":{"^.+\\.ts$":"ts-jest"}},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"homepage":"https://paulmillr.com/posts/noble-secp256k1-fast-ecc/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-secp256k1.git"},"license":"MIT","browser":{"crypto":false},"devDependencies":{"@rollup/plugin-node-resolve":"^13.0.0","@types/jest":"^27","@types/node":"^16.3.3","fast-check":"^2.14.0","jest":"^27","micro-bmark":"^0.1.3","noble-hashes":"^0.2.0","prettier":"^2.2.1","rollup":"^2.53.2","ts-jest":"^27","typescript":"~4.3.5"},"keywords":["secp256k1","secp","secp256","elliptic","elliptic curve","curve","signature","ecc","rfc6979","schnorr","sig","bip0340","bip340","ecdsa","endomorphism","cryptography","security","noble"],"exports":{".":{"import":"./lib/esm/index.js","default":"./lib/index.js"},"./index.d.ts":"./lib/index.d.ts"},"gitHead":"35e53e08b8869daf9dcd2b703a03521066936ef2","bugs":{"url":"https://github.com/paulmillr/noble-secp256k1/issues"},"_id":"@noble/secp256k1@1.3.3","_nodeVersion":"17.0.1","_npmVersion":"8.1.0","dist":{"shasum":"238160421281ffa9afac721361e20d3b8c99322c","size":23247,"noattachment":false,"key":"/@noble/secp256k1/-/@noble/secp256k1-1.3.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/@noble/secp256k1/download/@noble/secp256k1-1.3.3.tgz"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/secp256k1_1.3.3_1639406925320_0.32659549305676805"},"_hasShrinkwrap":false,"publish_time":1639406925647,"_cnpm_publish_time":1639406925647,"_cnpmcore_publish_time":"2021-12-15T17:13:46.590Z"},"1.3.2":{"name":"@noble/secp256k1","version":"1.3.2","description":"Fastest JS implementation of secp256k1. Independently audited, high-security, 0-dependency ECDSA & Schnorr signatures","types":"lib/index.d.ts","scripts":{"build":"tsc -d && tsc -p tsconfig.esm.json","build-release":"rollup -c rollup.config.js","lint":"prettier --print-width 100 --single-quote --check index.ts","test":"jest","coverage":"jest --coverage","bench":"node test/benchmark.js"},"jest":{"testRegex":"/test/.*?\\.ts","transform":{"^.+\\.ts$":"ts-jest"}},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"homepage":"https://paulmillr.com/posts/noble-secp256k1-fast-ecc/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-secp256k1.git"},"license":"MIT","browser":{"crypto":false},"devDependencies":{"@rollup/plugin-node-resolve":"^13.0.0","@types/jest":"^27","@types/node":"^16.3.3","fast-check":"^2.14.0","jest":"^27","micro-bmark":"^0.1.3","noble-hashes":"^0.2.0","prettier":"^2.2.1","rollup":"^2.53.2","ts-jest":"^27","typescript":"~4.3.5"},"keywords":["secp256k1","secp","secp256","elliptic","elliptic curve","curve","signature","ecc","rfc6979","schnorr","sig","bip0340","bip340","ecdsa","endomorphism","cryptography","security","noble"],"exports":{".":{"import":"./lib/esm/index.js","default":"./lib/index.js"},"./index.d.ts":"./lib/index.d.ts"},"gitHead":"8d713fc758489b388081d9c6d79ae11967906fb7","bugs":{"url":"https://github.com/paulmillr/noble-secp256k1/issues"},"_id":"@noble/secp256k1@1.3.2","_nodeVersion":"17.0.1","_npmVersion":"8.1.0","dist":{"shasum":"fb2b1deeecd6119bac6bac14c32c0eee601fea61","size":23233,"noattachment":false,"key":"/@noble/secp256k1/-/@noble/secp256k1-1.3.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/@noble/secp256k1/download/@noble/secp256k1-1.3.2.tgz"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/secp256k1_1.3.2_1639256093565_0.7012637587661963"},"_hasShrinkwrap":false,"publish_time":1639256093720,"_cnpm_publish_time":1639256093720,"_cnpmcore_publish_time":"2021-12-15T17:13:46.831Z"},"1.3.1":{"name":"@noble/secp256k1","version":"1.3.1","description":"Fastest JS implementation of secp256k1. Independently audited, high-security, 0-dependency ECDSA & Schnorr signatures","types":"index.d.ts","scripts":{"build":"tsc -d && tsc -p tsconfig.esm.json","build-release":"rollup -c rollup.config.js","lint":"prettier --print-width 100 --single-quote --check index.ts","test":"jest","coverage":"jest --coverage","bench":"node test/benchmark.js"},"jest":{"testRegex":"/test/.*?\\.ts","transform":{"^.+\\.ts$":"ts-jest"}},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"homepage":"https://paulmillr.com/posts/noble-secp256k1-fast-ecc/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-secp256k1.git"},"license":"MIT","browser":{"crypto":false},"devDependencies":{"@rollup/plugin-node-resolve":"^13.0.0","@types/jest":"^27","@types/node":"^16.3.3","fast-check":"^2.14.0","jest":"^27","micro-bmark":"^0.1.3","noble-hashes":"^0.2.0","prettier":"^2.2.1","rollup":"^2.53.2","ts-jest":"^27","typescript":"~4.3.5"},"keywords":["secp256k1","secp","secp256","elliptic","elliptic curve","curve","signature","ecc","rfc6979","schnorr","sig","bip0340","bip340","ecdsa","endomorphism","cryptography","security","noble"],"exports":{".":{"import":"./lib/esm/index.js","default":"./lib/index.js"},"./index.d.ts":"./lib/index.d.ts"},"gitHead":"57cdd6df471c8869a7786bc1c500b21aac6c3e8c","bugs":{"url":"https://github.com/paulmillr/noble-secp256k1/issues"},"_id":"@noble/secp256k1@1.3.1","_nodeVersion":"17.0.1","_npmVersion":"8.1.0","dist":{"shasum":"e02557b0d26d015c45942ea278234b26301c37e2","size":23188,"noattachment":false,"key":"/@noble/secp256k1/-/@noble/secp256k1-1.3.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/@noble/secp256k1/download/@noble/secp256k1-1.3.1.tgz"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/secp256k1_1.3.1_1639216910107_0.4047173482176094"},"_hasShrinkwrap":false,"publish_time":1639216910247,"_cnpm_publish_time":1639216910247,"_cnpmcore_publish_time":"2021-12-15T17:13:47.039Z"},"1.3.0":{"name":"@noble/secp256k1","version":"1.3.0","description":"Fastest JS implementation of secp256k1. Independently audited, high-security, 0-dependency ECDSA & Schnorr signatures","main":"index.js","types":"index.d.ts","scripts":{"build":"tsc -d","build-release":"rollup -c rollup.config.js","lint":"prettier --print-width 100 --single-quote --check index.ts","test":"jest","coverage":"jest --coverage","bench":"node test/benchmark.js"},"jest":{"testRegex":"/test/.*?\\.ts","transform":{"^.+\\.ts$":"ts-jest"}},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"homepage":"https://paulmillr.com/posts/noble-secp256k1-fast-ecc/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-secp256k1.git"},"license":"MIT","browser":{"crypto":false},"devDependencies":{"@rollup/plugin-commonjs":"^19.0.0","@rollup/plugin-node-resolve":"^13.0.0","@types/jest":"^27","@types/node":"^16.3.3","fast-check":"^2.14.0","jest":"^27","micro-bmark":"^0.1.3","noble-hashes":"^0.2.0","prettier":"^2.2.1","rollup":"^2.53.2","ts-jest":"^27","typescript":"~4.3.5"},"keywords":["secp256k1","secp","secp256","elliptic","elliptic curve","curve","signature","ecc","rfc6979","schnorr","sig","bip0340","bip340","ecdsa","endomorphism","cryptography","security","noble"],"gitHead":"22a1a91b654d1cf0b538915023cf3466cae1fb05","bugs":{"url":"https://github.com/paulmillr/noble-secp256k1/issues"},"_id":"@noble/secp256k1@1.3.0","_nodeVersion":"16.11.0","_npmVersion":"8.1.0","dist":{"shasum":"426880cf0355b24d81c129af1ec31dfa6eee8b9c","size":15540,"noattachment":false,"key":"/@noble/secp256k1/-/@noble/secp256k1-1.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@noble/secp256k1/download/@noble/secp256k1-1.3.0.tgz"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/secp256k1_1.3.0_1635979296714_0.034734703335760564"},"_hasShrinkwrap":false,"publish_time":1635979296901,"_cnpm_publish_time":1635979296901,"_cnpmcore_publish_time":"2021-12-15T17:13:47.247Z"}},"readme":"# noble-secp256k1\n\nFastest 5KB JS implementation of secp256k1 signatures & ECDH.\n\n- ✍️ [ECDSA](https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm)\n  signatures compliant with [RFC6979](https://www.rfc-editor.org/rfc/rfc6979)\n- ➰ Schnorr\n  signatures compliant with [BIP340](https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki)\n- ???? Elliptic Curve Diffie-Hellman [ECDH](https://en.wikipedia.org/wiki/Elliptic-curve_Diffie–Hellman)\n- ???? Supports [hedged signatures](https://paulmillr.com/posts/deterministic-signatures/) guarding against fault attacks\n- ???? 4.94KB (gzipped, elliptic.js is 10x larger, tiny-secp256k1 is 25x larger)\n\nThe module is a sister project of [noble-curves](https://github.com/paulmillr/noble-curves),\nfocusing on smaller attack surface & better auditability.\nCurves are drop-in replacement and have more features:\nMSM, DER encoding, endomorphism, prehashing, custom point precomputes, hash-to-curve, oprf.\nTo upgrade from earlier version, see [Upgrading](#upgrading).\n\n898-byte version of the library is available for learning purposes in `test/misc/1kb.min.js`,\nit was created for the article [Learning fast elliptic-curve cryptography](https://paulmillr.com/posts/noble-secp256k1-fast-ecc/).\n\n### This library belongs to _noble_ cryptography\n\n> **noble-cryptography** — high-security, easily auditable set of contained cryptographic libraries and tools.\n\n- Zero or minimal dependencies\n- Highly readable TypeScript / JS code\n- PGP-signed releases and transparent NPM builds with provenance\n- Check out [homepage](https://paulmillr.com/noble/) & all libraries:\n  [ciphers](https://github.com/paulmillr/noble-ciphers),\n  [curves](https://github.com/paulmillr/noble-curves),\n  [hashes](https://github.com/paulmillr/noble-hashes),\n  [post-quantum](https://github.com/paulmillr/noble-post-quantum),\n  5kb [secp256k1](https://github.com/paulmillr/noble-secp256k1) /\n  [ed25519](https://github.com/paulmillr/noble-ed25519)\n\n## Usage\n\n> `npm install @noble/secp256k1`\n\n> `deno add jsr:@noble/secp256k1`\n\nWe support all major platforms and runtimes. For React Native, additional polyfills are needed: see below.\n\n```js\nimport * as secp from '@noble/secp256k1';\n(async () => {\n  const { secretKey, publicKey } = secp.keygen();\n  // const publicKey = secp.getPublicKey(secretKey);\n  const msg = new TextEncoder().encode('hello noble');\n  const sig = await secp.signAsync(msg, secretKey);\n  const isValid = await secp.verifyAsync(sig, msg, publicKey);\n\n  const bobsKeys = secp.keygen();\n  const shared = secp.getSharedSecret(secretKey, bobsKeys.publicKey); // Diffie-Hellman\n  const sigr = await secp.signAsync(msg, secretKey, { format: 'recovered' });\n  const publicKey2 = secp.recoverPublicKey(sigr, msg);\n})();\n\n// Schnorr signatures from BIP340\n(async () => {\n  const schnorr = secp.schnorr;\n  const { secretKey, publicKey } = schnorr.keygen();\n  const msg = new TextEncoder().encode('hello noble');\n  const sig = await schnorr.signAsync(msg, secretKey);\n  const isValid = await schnorr.verifyAsync(sig, msg, publicKey);\n})();\n```\n\n### Enabling synchronous methods\n\nOnly async methods are available by default, to keep the library dependency-free.\nTo enable sync methods:\n\n```ts\nimport { hmac } from '@noble/hashes/hmac.js';\nimport { sha256 } from '@noble/hashes/sha2.js';\nsecp.hashes.hmacSha256 = (key, msg) => hmac(sha256, key, msg);\nsecp.hashes.sha256 = sha256;\n```\n\n### React Native: polyfill getRandomValues and sha256\n\n```ts\nimport 'react-native-get-random-values';\nimport { hmac } from '@noble/hashes/hmac.js';\nimport { sha256 } from '@noble/hashes/sha2.js';\nsecp.hashes.hmacSha256 = (key, msg) => hmac(sha256, key, msg);\nsecp.hashes.sha256 = sha256;\nsecp.hashes.hmacSha256Async = async (key, msg) => hmac(sha256, key, msg);\nsecp.hashes.sha256Async = async (msg) => sha256(msg);\n```\n\n## API\n\nThere are 4 main methods, which accept Uint8Array-s:\n\n* `keygen()`\n* `getPublicKey(secretKey)`\n* `sign(messageHash, secretKey)` and `signAsync(messageHash, secretKey)`\n* `verify(signature, messageHash, publicKey)` and `verifyAsync(signature, messageHash, publicKey)`\n\n### keygen\n\n```ts\nimport * as secp from '@noble/secp256k1';\n(async () => {\n  const keys = secp.keygen();\n  const { secretKey, publicKey } = keys;\n})();\n```\n\n### getPublicKey\n\n```ts\nimport * as secp from '@noble/secp256k1';\nconst secretKey = secp.utils.randomSecretKey();\nconst pubKey33b = secp.getPublicKey(secretKey);\n\n// Variants\nconst pubKey65b = secp.getPublicKey(secretKey, false);\nconst pubKeyPoint = secp.Point.fromBytes(pubKey65b);\nconst samePoint = pubKeyPoint.toBytes();\n```\n\nGenerates 33-byte compressed (default) or 65-byte public key from 32-byte private key.\n\n### sign\n\n```ts\nimport * as secp from '@noble/secp256k1';\nconst { secretKey } = secp.keygen();\nconst msg = 'hello noble';\nconst sig = secp.sign(msg, secretKey);\n\n// async\nconst sigB = await secp.signAsync(msg, secretKey);\n\n// recovered, allows `recoverPublicKey(sigR, msg)`\nconst sigR = secp.sign(msg, secretKey, { format: 'recovered' });\n// custom hash\nimport { keccak256 } from '@noble/hashes/sha3.js';\nconst sigH = secp.sign(keccak256(msg), secretKey, { prehash: false });\n// hedged sig\nconst sigC = secp.sign(msg, secretKey, { extraEntropy: true });\nconst sigC2 = secp.sign(msg, secretKey, { extraEntropy: Uint8Array.from([0xca, 0xfe]) });\n// malleable sig\nconst sigD = secp.sign(msg, secretKey, { lowS: false });\n```\n\nGenerates low-s deterministic-k RFC6979 ECDSA signature.\n\n- Message will be hashed with sha256. If you want to use a different hash function,\nmake sure to use `{ prehash: false }`.\n- `extraEntropy: true` enables hedged signatures. They incorporate\nextra randomness into RFC6979 (described in section 3.6),\nto provide additional protection against fault attacks.\nCheck out blog post [Deterministic signatures are not your friends](https://paulmillr.com/posts/deterministic-signatures/).\nEven if their RNG is broken, they will fall back to determinism.\n- Default behavior `lowS: true` prohibits signatures which have (sig.s >= CURVE.n/2n) and is compatible with BTC/ETH. Setting `lowS: false` allows to create malleable signatures, which is default openssl behavior. Non-malleable signatures can still be successfully verified in openssl.\n\n### verify\n\n```ts\nimport * as secp from '@noble/secp256k1';\nconst { secretKey, publicKey } = secp.keygen();\nconst msg = 'hello noble';\nconst sig = secp.sign(msg, secretKey);\nconst isValid = secp.verify(sig, msg, publicKey);\n\n// custom hash\nimport { keccak256 } from '@noble/hashes/sha3.js';\nconst sigH = secp.sign(keccak256(msg), secretKey, { prehash: false });\n```\n\nVerifies ECDSA signature.\n\n- Message will be hashed with sha256. If you want to use a different hash function,\nmake sure to use `{ prehash: false }`.\n- Default behavior `lowS: true` prohibits malleable signatures which have (`sig.s >= CURVE.n/2n`) and\n  is compatible with BTC / ETH.\n  Setting `lowS: false` allows to create signatures, which is default openssl behavior.\n\n### getSharedSecret\n\n```ts\nimport * as secp from '@noble/secp256k1';\nconst alice = secp.keygen();\nconst bob = secp.keygen();\nconst shared33b = secp.getSharedSecret(alice.secretKey, bob.publicKey);\nconst shared65b = secp.getSharedSecret(bob.secretKey, alice.publicKey, false);\nconst sharedPoint = secp.Point.fromBytes(bob.publicKey).multiply(\n  secp.etc.secretKeyToScalar(alice.secretKey)\n);\n```\n\nComputes ECDH (Elliptic Curve Diffie-Hellman) shared secret between\nkey A and different key B.\n\n### recoverPublicKey\n\n```ts\nimport * as secp from '@noble/secp256k1';\n\nconst { secretKey, publicKey } = secp.keygen();\nconst msg = 'hello noble';\nconst sigR = secp.sign(msg, secretKey, { format: 'recovered' });\nconst publicKey2 = secp.recoverPublicKey(sigR, msg);\n\n// custom hash\nimport { keccak256 } from '@noble/hashes/sha3.js';\nconst sigR = secp.sign(keccak256(msg), secretKey, { format: 'recovered', prehash: false });\nconst publicKey2 = secp.recoverPublicKey(sigR, keccak256(msg), { prehash: false });\n```\n\nRecover public key from Signature instance with `recovery` bit set.\n\n### schnorr\n\n```ts\nimport { schnorr } from '@noble/secp256k1';\nconst { secretKey, publicKey } = schnorr.keygen();\nconst msg = new TextEncoder().encode('hello noble');\nconst sig = schnorr.sign(msg, secretKey);\nconst isValid = schnorr.verify(sig, msg, publicKey);\n\nconst sig = await schnorr.signAsync(msg, secretKey);\nconst isValid = await schnorr.verifyAsync(sig, msg, publicKey);\n```\n\nSchnorr\nsignatures compliant with [BIP340](https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki)\nare supported.\n\n### utils\n\nA bunch of useful **utilities** are also exposed:\n\n```ts\nimport * as secp from '@noble/secp256k1';\n\nconst { bytesToHex, hexToBytes, concatBytes, mod, invert, randomBytes } = secp.etc;\nconst { isValidSecretKey, isValidPublicKey, randomSecretKey } = secp.utils;\nconst { Point } = secp;\nconsole.log(Point.CURVE(), Point.BASE);\n/*\nclass Point {\n  static BASE: Point;\n  static ZERO: Point;\n  readonly X: bigint;\n  readonly Y: bigint;\n  readonly Z: bigint;\n  constructor(X: bigint, Y: bigint, Z: bigint);\n  static CURVE(): WeierstrassOpts<bigint>;\n  static fromAffine(ap: AffinePoint): Point;\n  static fromBytes(bytes: Bytes): Point;\n  static fromHex(hex: string): Point;\n  get x(): bigint;\n  get y(): bigint;\n  equals(other: Point): boolean;\n  is0(): boolean;\n  negate(): Point;\n  double(): Point;\n  add(other: Point): Point;\n  subtract(other: Point): Point;\n  multiply(n: bigint): Point;\n  multiplyUnsafe(scalar: bigint): Point;\n  toAffine(): AffinePoint;\n  assertValidity(): Point;\n  toBytes(isCompressed?: boolean): Bytes;\n  toHex(isCompressed?: boolean): string;\n}\n*/\n```\n\n## Security\n\nThe module is production-ready.\n\nWe cross-test against sister project [noble-curves](https://github.com/paulmillr/noble-curves), which was audited and provides improved security.\n\n- The current version has not been independently audited. It is a rewrite of v1, which has been audited by cure53 in Apr 2021:\n  [PDF](https://cure53.de/pentest-report_noble-lib.pdf) (funded by [Umbra.cash](https://umbra.cash) & community).\n- It's being fuzzed [in a separate repository](https://github.com/paulmillr/fuzzing)\n\n### Constant-timeness\n\nWe're targetting algorithmic constant time. _JIT-compiler_ and _Garbage Collector_ make \"constant time\"\nextremely hard to achieve [timing attack](https://en.wikipedia.org/wiki/Timing_attack) resistance\nin a scripting language. Which means _any other JS library can't have\nconstant-timeness_. Even statically typed Rust, a language without GC,\n[makes it harder to achieve constant-time](https://www.chosenplaintext.ca/open-source/rust-timing-shield/security)\nfor some cases. If your goal is absolute security, don't use any JS lib — including bindings to native ones.\nUse low-level libraries & languages.\n\n### Supply chain security\n\n- **Commits** are signed with PGP keys, to prevent forgery. Make sure to verify commit signatures\n- **Releases** are transparent and built on GitHub CI.\n  Check out [attested checksums of single-file builds](https://github.com/paulmillr/noble-secp256k1/attestations)\n  and [provenance logs](https://github.com/paulmillr/noble-secp256k1/actions/workflows/release.yml)\n- **Rare releasing** is followed to ensure less re-audit need for end-users\n- **Dependencies** are minimized and locked-down: any dependency could get hacked and users will be downloading malware with every install.\n  - We make sure to use as few dependencies as possible\n  - Automatic dep updates are prevented by locking-down version ranges; diffs are checked with `npm-diff`\n- **Dev Dependencies** are disabled for end-users; they are only used to develop / build the source code\n\nFor this package, there are 0 dependencies; and a few dev dependencies:\n\n- [noble-hashes](https://github.com/paulmillr/noble-hashes) provides cryptographic hashing functionality\n- micro-bmark, micro-should and jsbt are used for benchmarking / testing / build tooling and developed by the same author\n- prettier, fast-check and typescript are used for code quality / test generation / ts compilation. It's hard to audit their source code thoroughly and fully because of their size\n\n### Randomness\n\nWe're deferring to built-in\n[crypto.getRandomValues](https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues)\nwhich is considered cryptographically secure (CSPRNG).\n\nIn the past, browsers had bugs that made it weak: it may happen again.\nImplementing a userspace CSPRNG to get resilient to the weakness\nis even worse: there is no reliable userspace source of quality entropy.\n\n### Quantum computers\n\nCryptographically relevant quantum computer, if built, will allow to\nbreak elliptic curve cryptography (both ECDSA / EdDSA & ECDH) using Shor's algorithm.\n\nConsider switching to newer / hybrid algorithms, such as SPHINCS+. They are available in\n[noble-post-quantum](https://github.com/paulmillr/noble-post-quantum).\n\nNIST prohibits classical cryptography (RSA, DSA, ECDSA, ECDH) [after 2035](https://nvlpubs.nist.gov/nistpubs/ir/2024/NIST.IR.8547.ipd.pdf). Australian ASD prohibits it [after 2030](https://www.cyber.gov.au/resources-business-and-government/essential-cyber-security/ism/cyber-security-guidelines/guidelines-cryptography).\n\n## Speed\n\n    npm run bench\n\nBenchmarks measured with Apple M4. [noble-curves](https://github.com/paulmillr/noble-curves) enable faster performance.\n\n```\nkeygen x 7,643 ops/sec @ 130μs/op\nsign x 7,620 ops/sec @ 131μs/op\nverify x 823 ops/sec @ 1ms/op\ngetSharedSecret x 707 ops/sec @ 1ms/op\nrecoverPublicKey x 790 ops/sec @ 1ms/op\n\nsignAsync x 4,874 ops/sec @ 205μs/op\nverifyAsync x 811 ops/sec @ 1ms/op\n\nPoint.fromBytes x 13,656 ops/sec @ 73μs/op\n```\n\n## Upgrading\n\n### v2 to v3\n\nv3 brings the package closer to noble-curves v2.\n\n- Add Schnorr signatures\n- Most methods now expect Uint8Array, string hex inputs are prohibited\n- Add `keygen`, `keygenAsync` method\n- sign, verify: Switch to **prehashed messages**. Instead of\n  messageHash, the methods now expect unhashed message.\n  To bring back old behavior, use option `{prehash: false}`\n- sign, verify: Switch to **Uint8Array signatures** (format: 'compact') by default.\n- verify: **der format must be explicitly specified** in `{format: 'der'}`.\n  This reduces malleability\n- verify: **prohibit Signature-instance** signature. User must now always do\n  `signature.toBytes()`\n- Node v20.19 is now the minimum required version\n- Various small changes for types\n- etc: hashes are now set in `hashes` object. Also sha256 needs to be set now for `prehash: true`:\n\n```js\n// before\n// etc.hmacSha256Sync = (key, ...messages) => hmac(sha256, key, etc.concatBytes(...messages));\n// etc.hmacSha256Async = (key, ...messages) => Promise.resolve(etc.hmacSha256Sync(key, ...messages));\n// after\nhashes.hmacSha256 = (key, msg) => hmac(sha256, key, msg);\nhashes.sha256 = sha256;\nhashes.hmacSha256Async = async (key, msg) => hmac(sha256, key, msg);\nhashes.sha256Async = async (msg) => sha256(msg);\n```\n\n### v1 to v2\n\nv2 improves security and reduces attack surface.\nThe goal of v2 is to provide minimum possible JS library which is safe and fast.\n\n- Disable some features to ensure 4x smaller than v1, 5KB bundle size:\n  - The features are now a part of [noble-curves](https://github.com/paulmillr/noble-curves),\n    **switch to curves if you need them**. Curves is drop-in replacement.\n  - DER encoding: toDERHex, toDERRawBytes, signing / verification of DER sigs\n  - Schnorr signatures\n  - Support for environments which don't support bigint literals\n  - Common.js support\n  - Support for node.js 18 and older without [shim](#usage)\n  - Using `utils.precompute()` for non-base point\n- `getPublicKey`\n  - now produce 33-byte compressed signatures by default\n  - to use old behavior, which produced 65-byte uncompressed keys, set\n    argument `isCompressed` to `false`: `getPublicKey(priv, false)`\n- `sign`\n  - is now sync; use `signAsync` for async version\n  - now returns `Signature` instance with `{ r, s, recovery }` properties\n  - `canonical` option was renamed to `lowS`\n  - `recovered` option has been removed because recovery bit is always returned now\n  - `der` option has been removed. There are 2 options:\n    1. Use compact encoding: `fromCompact`, `toBytes`, `toCompactHex`.\n       Compact encoding is simply a concatenation of 32-byte r and 32-byte s.\n    2. If you must use DER encoding, switch to noble-curves (see above).\n- `verify`\n  - `strict` option was renamed to `lowS`\n- `getSharedSecret`\n  - now produce 33-byte compressed signatures by default\n  - to use old behavior, which produced 65-byte uncompressed keys, set\n    argument `isCompressed` to `false`: `getSharedSecret(a, b, false)`\n- `recoverPublicKey(msg, sig, rec)` was changed to `sig.recoverPublicKey(msg)`\n- `number` type for private keys have been removed: use `bigint` instead\n- `Point` (2d xy) has been changed to `ProjectivePoint` (3d xyz)\n- `utils` were split into `utils` (same api as in noble-curves) and\n  `etc` (`hmacSha256Sync` and others)\n\n## Contributing & testing\n\n- `npm install && npm run build && npm test` will build the code and run tests.\n- `npm run bench` will run benchmarks\n- `npm run build:release` will build single non-module file\n\nSee [paulmillr.com/noble](https://paulmillr.com/noble/)\nfor useful resources, articles, documentation and demos\nrelated to the library.\n\n## License\n\nThe MIT License (MIT)\n\nCopyright (c) 2019 Paul Miller [(https://paulmillr.com)](https://paulmillr.com)\n\nSee LICENSE file.\n","_attachments":{},"homepage":"https://paulmillr.com/noble/","bugs":{"url":"https://github.com/paulmillr/noble-secp256k1/issues"},"license":"MIT"}