{"_id":"@scure/starknet","_rev":"8-e3f0c8b0d8b50b5401418c711ad512ac","name":"@scure/starknet","dist-tags":{"latest":"2.4.0"},"versions":{"0.3.0":{"name":"@scure/starknet","version":"0.3.0","keywords":["starknet","stark curve","pedersen hash","stark key","starkware","starkex"],"author":{"url":"https://paulmillr.com","name":"Paul Miller"},"license":"MIT","_id":"@scure/starknet@0.3.0","maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"homepage":"https://github.com/paulmillr/scure-starknet","bugs":{"url":"https://github.com/paulmillr/scure-starknet/issues"},"dist":{"shasum":"b8273a42fc721025f8098b1f1d96368a7067e1c4","tarball":"https://registry.npmjs.org/@scure/starknet/-/starknet-0.3.0.tgz","fileCount":8,"integrity":"sha512-Ma66yZlwa5z00qI5alSxdWtIpky5LBhy22acVFdoC5kwwbd9uDyMWEYzWHdNyKmQg9t5Y2UOXzINMeb3yez+Gw==","signatures":[{"sig":"MEUCIQDy7StcGYpxBqXxhnyTCnRAth4VulE7YC9xC8rn6wkmUgIgShWNQ43sUKl2qq0XfEP1G4yB5DkLNMY91vAmk8JnaQ8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@scure%2fstarknet@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49987},"main":"lib/index.js","types":"lib/index.d.ts","module":"lib/esm/index.js","browser":{"crypto":false},"exports":{".":{"types":"./lib/index.d.ts","import":"./lib/esm/index.js","default":"./lib/index.js"}},"funding":[{"url":"https://paulmillr.com/funding/","type":"individual"}],"gitHead":"bc975a5007d1d0a7c12eb9a6065e34d0cc1023ee","scripts":{"lint":"prettier --check index.ts test/*.test.js","test":"node test/index.test.js","bench":"cd test/benchmark; npm i; node index.js","build":"tsc && tsc -p tsconfig.esm.json","format":"prettier --write index.ts test/*.test.js"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"repository":{"url":"git+https://github.com/paulmillr/scure-starknet.git","type":"git"},"_npmVersion":"9.8.1","description":"Minimal implementation of Starknet cryptography including Pedersen and Stark Curve","directories":{},"_nodeVersion":"20.5.1","dependencies":{"@noble/curves":"~1.2.0","@noble/hashes":"~1.3.2"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"2.8.4","fast-check":"3.7.0","typescript":"5.0.2","@scure/base":"~1.1.1","micro-bmark":"0.3.1","@scure/bip32":"~1.3.1","@scure/bip39":"~1.2.1","micro-should":"0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/starknet_0.3.0_1692814426013_0.18089642607210688","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"@scure/starknet","version":"1.0.0","keywords":["starknet","stark curve","pedersen hash","stark key","starkware","starkex","cryptography"],"author":{"url":"https://paulmillr.com","name":"Paul Miller"},"license":"MIT","_id":"@scure/starknet@1.0.0","maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"homepage":"https://github.com/paulmillr/scure-starknet","bugs":{"url":"https://github.com/paulmillr/scure-starknet/issues"},"dist":{"shasum":"4419bc2fdf70f3dd6cb461d36c878c9ef4419f8c","tarball":"https://registry.npmjs.org/@scure/starknet/-/starknet-1.0.0.tgz","fileCount":8,"integrity":"sha512-o5J57zY0f+2IL/mq8+AYJJ4Xpc1fOtDhr+mFQKbHnYFmm3WQrC+8zj2HEgxak1a+x86mhmBC1Kq305KUpVf0wg==","signatures":[{"sig":"MEYCIQDmzFMFnR46+/G5MGpl4UbvkYjc4G2Pran4Ljvjf6IkkwIhAK+5gUKznNzfse2siXE3z3sVulkAmFnC1t9qr5oE7sw5","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@scure%2fstarknet@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50523},"main":"lib/index.js","types":"lib/index.d.ts","module":"lib/esm/index.js","browser":{"crypto":false},"exports":{".":{"types":"./lib/index.d.ts","import":"./lib/esm/index.js","default":"./lib/index.js"}},"funding":"https://paulmillr.com/funding/","gitHead":"971f5b81ba7b7230b83a45b0d82ed6db2cb3f2dd","scripts":{"lint":"prettier --check index.ts test/*.test.js","test":"node test/index.test.js","bench":"cd test/benchmark; npm i; node index.js","build":"tsc && tsc -p tsconfig.esm.json","format":"prettier --write index.ts test/*.test.js"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"repository":{"url":"git+https://github.com/paulmillr/scure-starknet.git","type":"git"},"_npmVersion":"10.2.5","description":"Audited & minimal implementation of Starknet cryptography including Pedersen and Stark Curve","directories":{},"_nodeVersion":"20.10.0","dependencies":{"@noble/curves":"~1.3.0","@noble/hashes":"~1.3.3"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"3.1.1","fast-check":"3.7.0","typescript":"5.3.2","@scure/base":"~1.1.4","micro-bmark":"0.3.1","@scure/bip32":"~1.3.3","@scure/bip39":"~1.2.1","micro-should":"0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/starknet_1.0.0_1702459341434_0.37783358882411266","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@scure/starknet","version":"1.1.0","keywords":["starknet","stark curve","pedersen hash","stark key","starkware","starkex","cryptography"],"author":{"url":"https://paulmillr.com","name":"Paul Miller"},"license":"MIT","_id":"@scure/starknet@1.1.0","maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"homepage":"https://github.com/paulmillr/scure-starknet","bugs":{"url":"https://github.com/paulmillr/scure-starknet/issues"},"dist":{"shasum":"d1902e053d98196e161b9b2c3996b20999094e7a","tarball":"https://registry.npmjs.org/@scure/starknet/-/starknet-1.1.0.tgz","fileCount":13,"integrity":"sha512-83g3M6Ix2qRsPN4wqLDqiRZ2GBNbjVWfboJE/9UjfG+MHr6oDSu/CWgy8hsBSJejr09DkkL+l0Ze4KVrlCIdtQ==","signatures":[{"sig":"MEUCIQC2pcWOvnWlaVPLpyUCLYLB0vLhsLovenY2G5lQUmco9AIgcbdED6rRwdxA36xwwdQ1KPXu61hsWEItfV8cJz9qflY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@scure%2fstarknet@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93013},"main":"lib/index.js","types":"lib/index.d.ts","module":"lib/esm/index.js","browser":{"crypto":false},"exports":{".":{"import":"./lib/esm/index.js","require":"./lib/index.js"}},"funding":"https://paulmillr.com/funding/","gitHead":"44d42e556343268737fccad65f512ab4ae4747a8","scripts":{"lint":"prettier --check index.ts test/*.test.js","test":"node test/index.test.js","bench":"cd test/benchmark; npm i; node index.js","build":"tsc && tsc -p tsconfig.esm.json","format":"prettier --write index.ts test/*.test.js"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"repository":{"url":"git+https://github.com/paulmillr/scure-starknet.git","type":"git"},"_npmVersion":"10.9.1","description":"Audited & minimal implementation of Starknet cryptography including Pedersen and Stark Curve","directories":{},"sideEffects":false,"_nodeVersion":"20.18.0","dependencies":{"@noble/curves":"~1.7.0","@noble/hashes":"~1.6.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"3.3.2","fast-check":"3.0.0","typescript":"5.5.2","@scure/base":"~1.2.1","micro-bmark":"0.3.1","@scure/bip32":"~1.6.0","@scure/bip39":"~1.5.0","micro-should":"0.4.0","@paulmillr/jsbt":"0.2.1"},"_npmOperationalInternal":{"tmp":"tmp/starknet_1.1.0_1732352110106_0.016319274628027403","host":"s3://npm-registry-packages"}},"1.1.2":{"name":"@scure/starknet","version":"1.1.2","keywords":["starknet","stark curve","pedersen hash","stark key","starkware","starkex","cryptography"],"author":{"url":"https://paulmillr.com","name":"Paul Miller"},"license":"MIT","_id":"@scure/starknet@1.1.2","maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"homepage":"https://github.com/paulmillr/scure-starknet","bugs":{"url":"https://github.com/paulmillr/scure-starknet/issues"},"dist":{"shasum":"3b9492d83e773092158a240fb1e2a437933d2a7e","tarball":"https://registry.npmjs.org/@scure/starknet/-/starknet-1.1.2.tgz","fileCount":13,"integrity":"sha512-Qo2uNQJC/1IwfXC0f2BnDjtXnY1cVyfmK1WcGNFzfnktvlNmmmbjYeUNdYe3DBiDYyMzp1MhRUFllFW5moBaMg==","signatures":[{"sig":"MEUCIG2KXAL7qYWv/qOBEc+BcJSBFO9zILwIUhXW2cQDUpBeAiEA7+dj44HwPNhSE9Am8NNs7ZE1rJk7vuXoCd59SBPx2W8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@scure%2fstarknet@1.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":98027},"main":"lib/index.js","types":"lib/index.d.ts","module":"lib/esm/index.js","browser":{"crypto":false},"exports":{".":{"import":"./lib/esm/index.js","require":"./lib/index.js"}},"funding":"https://paulmillr.com/funding/","gitHead":"200adb2fb95f56a11f20d76c984398cd43ddc06f","scripts":{"lint":"prettier --check index.ts test/*.test.js","test":"node test/index.js","bench":"cd test/benchmark; npm i; node index.js","build":"tsc && tsc -p tsconfig.cjs.json","format":"prettier --write index.ts test/*.test.js","test:bun":"bun test/index.js","test:deno":"deno --allow-env --allow-read test/index.js","build:release":"npx jsbt esbuild test/build"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"repository":{"url":"git+https://github.com/paulmillr/scure-starknet.git","type":"git"},"_npmVersion":"10.9.2","description":"Audited & minimal implementation of Starknet cryptography including Pedersen and Stark Curve","directories":{},"sideEffects":false,"_nodeVersion":"22.13.0","dependencies":{"@noble/curves":"~1.9.0","@noble/hashes":"~1.8.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"3.5.3","fast-check":"4.1.1","typescript":"5.8.3","@scure/base":"~1.2.4","micro-bmark":"0.4.2","@scure/bip32":"~1.7.0","@scure/bip39":"~1.6.0","micro-should":"0.5.3","@paulmillr/jsbt":"0.3.3"},"_npmOperationalInternal":{"tmp":"tmp/starknet_1.1.2_1748548906716_0.29877965502881576","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@scure/starknet","version":"2.0.0","keywords":["starknet","stark curve","pedersen hash","stark key","starkware","starkex","cryptography"],"author":{"url":"https://paulmillr.com","name":"Paul Miller"},"license":"MIT","_id":"@scure/starknet@2.0.0","maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"homepage":"https://paulmillr.com/noble/#scure","bugs":{"url":"https://github.com/paulmillr/scure-starknet/issues"},"dist":{"shasum":"e73514828b5128176ddef16e67001b17a4360fa6","tarball":"https://registry.npmjs.org/@scure/starknet/-/starknet-2.0.0.tgz","fileCount":8,"integrity":"sha512-uDGDGleYeqsYQTpPU2IZdO7WeCeYO2sORIJdLnjX/vuENxnu8WRhabFKHjoQGQf0sPuMRD5nKyQBxKWy45W5cg==","signatures":[{"sig":"MEQCIALE9XYA/KQ8FUlTeUMWRQCHY/5fmHjuetjv/weUpILJAiAQf+9P1+Fs3M7jO8g4crd1b2/hgoJju4yjrraYvWhPRg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@scure%2fstarknet@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":60128},"main":"index.js","type":"module","types":"index.d.ts","module":"index.js","engines":{"node":">= 20.19.0"},"funding":"https://paulmillr.com/funding/","gitHead":"6e58985068a0552777d69531a73fc0e5fc34248a","scripts":{"test":"node test/index.ts","bench":"cd test/benchmark; npm i; node index.js","build":"tsc","format":"prettier --write index.ts test/*.test.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","build:release":"npx --no @paulmillr/jsbt esbuild test/build"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"repository":{"url":"git+https://github.com/paulmillr/scure-starknet.git","type":"git"},"_npmVersion":"11.5.1","description":"Audited & minimal implementation of Starknet cryptography including Pedersen and Stark Curve","directories":{},"sideEffects":false,"_nodeVersion":"24.6.0","dependencies":{"@noble/curves":"~2.0.0","@noble/hashes":"~2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"3.6.2","fast-check":"4.2.0","typescript":"5.9.2","@scure/base":"^2.0.0","@types/node":"24.2.1","@scure/bip32":"^2.0.0","@scure/bip39":"^2.0.0","@paulmillr/jsbt":"0.4.4"},"_npmOperationalInternal":{"tmp":"tmp/starknet_2.0.0_1756140734673_0.24970141214809916","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@scure/starknet","version":"2.2.0","keywords":["starknet","stark curve","pedersen hash","stark key","starkware","starkex","cryptography"],"author":{"url":"https://paulmillr.com","name":"Paul Miller"},"license":"MIT","_id":"@scure/starknet@2.2.0","maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"homepage":"https://paulmillr.com/noble/#scure","bugs":{"url":"https://github.com/paulmillr/scure-starknet/issues"},"dist":{"shasum":"a07bdd85da1d31e9a75a7a7aa69aa33539549a10","tarball":"https://registry.npmjs.org/@scure/starknet/-/starknet-2.2.0.tgz","fileCount":8,"integrity":"sha512-FPgUFyEgbEG7ewrj9gWUeXpf2b6klBnqcZOSFz6z4ycVCIAeGhNqKQUPlvl2Ka8gfmrbCcdIrImyi+dINr06Uw==","signatures":[{"sig":"MEYCIQCD6UCm9Dn6MbocjK3Q+QLcD8y87RshGwimohXgwTBkDQIhAIQuS+ZTCmbkcvurisY4ct/bv0810T9mmCo7wUzMl0kz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@scure%2fstarknet@2.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":116530},"main":"index.js","type":"module","types":"index.d.ts","module":"index.js","engines":{"node":">= 20.19.0"},"funding":"https://paulmillr.com/funding/","gitHead":"86688aceb960c0d8b4900008d15be681903d3b65","scripts":{"test":"node test/index.ts","bench":"cd test/benchmark; npm i; node index.js","build":"tsc","check":"npx --no @paulmillr/jsbt check package.json","format":"prettier --write index.ts test/*.test.ts","test:bun":"bun test/index.ts","test:deno":"deno --allow-env --allow-read test/index.ts","check:jsdoc":"npx --no @paulmillr/jsbt tsdoc package.json","test:node20":"cd test; npx tsc; node compiled/test/index.js","check:readme":"npx --no @paulmillr/jsbt readme package.json","build:release":"npx --no @paulmillr/jsbt esbuild test/build","check:treeshake":"npx --no @paulmillr/jsbt treeshake package.json test/build/out-treeshake"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0aea5442-403d-4bec-8242-9120b3141885"}},"repository":{"url":"git+https://github.com/paulmillr/scure-starknet.git","type":"git"},"_npmVersion":"11.6.1","description":"Audited & minimal implementation of Starknet cryptography including Pedersen and Stark Curve","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","dependencies":{"@noble/curves":"~2.2.0","@noble/hashes":"~2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"3.6.2","fast-check":"4.2.0","typescript":"6.0.2","@scure/base":"2.2.0","@types/node":"25.3.0","@scure/bip32":"2.2.0","@scure/bip39":"2.2.0","@paulmillr/jsbt":"0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/starknet_2.2.0_1776800186201_0.5535848270072521","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"@scure/starknet","version":"2.3.0","keywords":["starknet","stark curve","pedersen hash","stark key","starkware","starkex","cryptography"],"author":{"url":"https://paulmillr.com","name":"Paul Miller"},"license":"MIT","_id":"@scure/starknet@2.3.0","maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"homepage":"https://paulmillr.com/noble/#scure","bugs":{"url":"https://github.com/paulmillr/scure-starknet/issues"},"dist":{"shasum":"c953aae8519114c4a6333561d564415f02f3d366","tarball":"https://registry.npmjs.org/@scure/starknet/-/starknet-2.3.0.tgz","fileCount":6,"integrity":"sha512-UcTTyCkzeh7mWxgwE0xiPbFgY70ri2b+gnkCRH/o3qt7280Mt2Q2XfG1fbwaPD39qPUCv4uCHJW6BRVwhCN8XA==","signatures":[{"sig":"MEYCIQDUKcL5dG1/WpYacwaNFWjoWZCG5RqYiutOeVS1ezrfegIhAPlEWV0/ObXHH9mmznl/MwRHsDtLPFOmnQifdfnbnOx8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@scure%2fstarknet@2.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":98120},"main":"index.js","type":"module","types":"index.d.ts","module":"index.js","engines":{"node":">= 20.19.0"},"funding":"https://paulmillr.com/funding/","gitHead":"7b449748aa2d112c7131452e0f9382fb7b0c28e3","scripts":{"test":"node test/index.ts","build":"tsc","check":"jsbt-check","format":"prettier --write index.ts test/*.test.ts","benchmark":"cd test/benchmark; npm i; node index.js","benchmark:size":"npx bismar@0.1.3 -s"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","approver":{"name":"paulmillr","email":"paul@paulmillr.com"},"trustedPublisher":{"id":"github","oidcConfigId":"oidc:008297f2-5857-473f-9416-e5fef0e0c4ba"}},"repository":{"url":"git+https://github.com/paulmillr/scure-starknet.git","type":"git"},"_npmVersion":"12.0.2","description":"Audited & minimal implementation of Starknet cryptography including Pedersen and Stark Curve","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","dependencies":{"@noble/curves":"~2.3.0","@noble/hashes":"~2.3.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"3.6.2","fast-check":"4.2.0","typescript":"6.0.2","@scure/base":"2.3.0","@types/node":"25.3.0","@scure/bip32":"2.3.0","@scure/bip39":"2.3.0","@paulmillr/jsbt":"0.6.5"},"_npmOperationalInternal":{"tmp":"tmp/starknet_2.3.0_1786167093841_0.7622577056374713","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"_id":"@scure/starknet@2.4.0","bugs":{"url":"https://github.com/paulmillr/scure-starknet/issues"},"dist":{"shasum":"7a9adc17d105b7fe571480c9cfc9187326108759","tarball":"https://registry.npmjs.org/@scure/starknet/-/starknet-2.4.0.tgz","integrity":"sha512-ZOtYjLzibTeHUfOgLVQaaUGej+eMV+EnHyUL0+JBSsLWEDKmOggxVYs3ri7G4DybtpeR1/65iK+ihD3K9Sfqbw==","fileCount":6,"unpackedSize":98133,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@scure%2fstarknet@2.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCwaWsrqpL4RFWlHzKbg4owBTC7JlGUSDYEeBCawd3iAAIgZQ/qPu0F83UUiOuCDhy6Zf5EUKyqEWKJvcjI8tX/iCE="}]},"main":"index.js","name":"@scure/starknet","type":"module","types":"index.d.ts","author":{"url":"https://paulmillr.com","name":"Paul Miller"},"module":"index.js","engines":{"node":">= 20.19.0"},"funding":"https://paulmillr.com/funding/","gitHead":"90934baaa3923dd21835debe7af424a7ff97b24c","license":"MIT","scripts":{"test":"node test/index.ts","build":"tsc","check":"jsbt-check","format":"prettier --write index.ts test/*.test.ts","benchmark":"cd test/benchmark; npm i; node index.js","benchmark:size":"bismar -bsm"},"version":"2.4.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:008297f2-5857-473f-9416-e5fef0e0c4ba"},"approver":{"name":"paulmillr","email":"paul@paulmillr.com"}},"homepage":"https://paulmillr.com/noble/#scure","keywords":["starknet","stark curve","pedersen hash","stark key","starkware","starkex","cryptography"],"repository":{"url":"git+https://github.com/paulmillr/scure-starknet.git","type":"git"},"_npmVersion":"12.0.2","description":"Audited & minimal implementation of Starknet cryptography including Pedersen and Stark Curve","directories":{},"maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"sideEffects":false,"_nodeVersion":"24.19.0","dependencies":{"@noble/curves":"2.4.0","@noble/hashes":"2.4.0"},"devDependencies":{"bismar":"0.1.8","prettier":"3.9.6","fast-check":"4.2.0","typescript":"6.0.3","@scure/base":"2.4.0","@types/node":"26.3.0","@scure/bip32":"2.4.0","@scure/bip39":"2.4.0","@paulmillr/jsbt":"0.7.1"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/starknet_2.4.0_1788007543120_0.46162202465899016"},"_hasShrinkwrap":false}},"time":{"created":"2023-08-23T18:13:45.860Z","modified":"2026-08-29T12:45:43.557Z","0.3.0":"2023-08-23T18:13:46.214Z","1.0.0":"2023-12-13T09:22:21.586Z","1.1.0":"2024-11-23T08:55:10.274Z","1.1.2":"2025-05-29T20:01:46.911Z","2.0.0":"2025-08-25T16:52:14.904Z","2.2.0":"2026-04-21T19:36:26.350Z","2.3.0":"2026-08-08T05:31:33.932Z","2.4.0":"2026-08-29T12:45:43.213Z"},"bugs":{"url":"https://github.com/paulmillr/scure-starknet/issues"},"author":{"url":"https://paulmillr.com","name":"Paul Miller"},"license":"MIT","homepage":"https://paulmillr.com/noble/#scure","keywords":["starknet","stark curve","pedersen hash","stark key","starkware","starkex","cryptography"],"repository":{"url":"git+https://github.com/paulmillr/scure-starknet.git","type":"git"},"description":"Audited & minimal implementation of Starknet cryptography including Pedersen and Stark Curve","maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"readme":"# scure-starknet\n\nAudited & minimal JS implementation of Starknet cryptography.\n\n- 🔒 [Audited](#security) by an independent security firm\n- 🧜‍♂️ [Stark curve](https://docs.starkware.co/starkex/stark-curve.html), pedersen and poseidon hashes\n- ➰ Uses [noble-curves](https://github.com/paulmillr/noble-curves) for underlying arithmetics\n\n### This library belongs to _scure_\n\n> **scure** — audited micro-libraries.\n\n- Zero or minimal dependencies\n- Highly readable TypeScript / JS code\n- PGP-signed releases and transparent NPM builds\n- Check out [homepage](https://paulmillr.com/noble/#scure) & all libraries:\n  [base](https://github.com/paulmillr/scure-base),\n  [bip32](https://github.com/paulmillr/scure-bip32),\n  [bip39](https://github.com/paulmillr/scure-bip39),\n  [btc-signer](https://github.com/paulmillr/scure-btc-signer),\n  [sr25519](https://github.com/paulmillr/scure-sr25519),\n  [starknet](https://github.com/paulmillr/scure-starknet)\n\n## Usage\n\n> `npm install @scure/starknet`\n\n> `jsr add jsr:@scure/starknet`\n\n```ts\nimport * as starknet from '@scure/starknet';\n```\n\nWe support all major platforms and runtimes.\n\nNote: the examples use the 'deepStrictEqual' function from the 'assert' built-in NodeJS module to compare values.\n\nIn Typescript, you must first install the '@types/node' npm package and then import like this: `import { deepStrictEqual } from 'assert';`.\n\nIn vanilla Javascript, just do this: `const { deepStrictEqual } = require(\"assert\");` <br>\n\n### Curve\n\n```ts\nimport { deepStrictEqual } from 'node:assert';\nimport * as starknet from '@scure/starknet';\n\n// Signing and verification\nconst privateKey = '2dccce1da22003777062ee0870e9881b460a8b7eca276870f57c601f182136c';\nconst publicKey = starknet.getPublicKey(privateKey);\nconst messageHash = 'c465dd6b1bbffdb05442eb17f5ca38ad1aa78a6f56bf4415bdee219114a47';\nconst sig = starknet.sign(messageHash, privateKey);\nconst { r, s } = sig;\ndeepStrictEqual(r.toString(16), '5f496f6f210b5810b2711c74c15c05244dad43d18ecbbdbe6ed55584bc3b0a2');\ndeepStrictEqual(s.toString(16), '4e8657b153787f741a67c0666bad6426c3741b478c8eaa3155196fc571416f3');\ndeepStrictEqual(starknet.verify(sig, messageHash, publicKey), true);\n\n// Private key to StarkKey\ndeepStrictEqual(\n  starknet.getStarkKey('0x178047D3869489C055D7EA54C014FFB834A069C9595186ABE04EA4D1223A03F'),\n  '0x1895a6a77ae14e7987b9cb51329a5adfb17bd8e7c638f92d6892d76e51cebcf'\n);\n\n// Pedersen hash\ndeepStrictEqual(\n  starknet.pedersen(\n    '0x3d937c035c878245caf64531a5756109c53068da139362728feb561405371cb',\n    '0x208a0a10250e382e1e4bbe2880906c2791bf6275695e02fbbc6aeff9cd8b31a'\n  ),\n  '0x30e480bed5fe53fa909cc0f8c4d99b8f9f2c016be4c41e13a4848797979c662'\n);\n\n// Create private key from ethereum signature\nconst ethSignature =\n  '0x21fbf0696d5e0aa2ef41a2b4ffb623bcaf070461d61cf7251c74161f82fec3a43' +\n  '70854bc0a34b3ab487c1bc021cd318c734c51ae29374f2beb0e6f2dd49b4bf41c';\ndeepStrictEqual(\n  starknet.ethSigToPrivate(ethSignature),\n  '766f11e90cd7c7b43085b56da35c781f8c067ac0d578eabdceebc4886435bda'\n);\n```\n\n### Private key from mnemonic\n\n> `npm install @scure/bip32 @scure/bip39`\n\n```ts\nimport { deepStrictEqual } from 'node:assert';\nimport * as bip32 from '@scure/bip32';\nimport * as bip39 from '@scure/bip39';\nimport * as starknet from '@scure/starknet';\n\nconst layer = 'starkex';\nconst application = 'starkdeployement';\nconst mnemonic =\n  'range mountain blast problem vibrant void vivid doctor cluster enough melody ' +\n  'salt layer language laptop boat major space monkey unit glimpse pause change vibrant';\nconst ethAddress = '0xa4864d977b944315389d1765ffa7e66F74ee8cd7';\nconst hdKey = bip32.HDKey.fromMasterSeed(bip39.mnemonicToSeedSync(mnemonic)).derive(\n  starknet.getAccountPath(layer, application, ethAddress, 0)\n);\nif (!hdKey.privateKey) throw new Error('expected hdKey.privateKey');\ndeepStrictEqual(\n  starknet.grindKey(hdKey.privateKey),\n  '6cf0a8bf113352eb863157a45c5e5567abb34f8d32cddafd2c22aa803f4892c'\n);\n```\n\n### Poseidon\n\n[Poseidon hash](https://www.poseidon-hash.info) can be used in the following way:\n\n```ts\ntype PoseidonFn = ReturnType<typeof poseidon> & {\n  m: number;\n  rate: number;\n  capacity: number;\n};\nfunction poseidonHash(x: bigint, y: bigint, fn?: PoseidonFn): bigint;\nfunction poseidonHashFunc(x: Uint8Array, y: Uint8Array, fn?: PoseidonFn): Uint8Array;\nfunction poseidonHashSingle(x: bigint, fn?: PoseidonFn): bigint;\nfunction poseidonHashMany(values: bigint[], fn?: PoseidonFn): bigint;\n```\n\n### Utils\n\n```ts\nimport { deepStrictEqual } from 'node:assert';\nimport * as starknet from '@scure/starknet';\n\n// Hash list of elements (same as hashChain, but includes single values and preserves order)\ndeepStrictEqual(\n  starknet.computeHashOnElements([1, 2, 3]),\n  '0xf9d95fbf356fbeda26538c92f7040abe51bf142350f73c9ee5ba7c660bae71'\n);\n\n// Key grinding\ndeepStrictEqual(\n  starknet.grindKey('86F3E7293141F20A8BAFF320E8EE4ACCB9D4A4BF2B4D295E8CEE784DB46E0519'),\n  '5c8c8683596c732541a59e03007b2d30dbbbb873556fe65b5fb63c16688f941'\n);\n\n// Starknet keccak\ndeepStrictEqual(\n  starknet.keccak(new TextEncoder().encode('hello')),\n  0x8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8n\n);\n```\n\n## Security\n\nThe library has been audited:\n\n- at version 2.2.0, in Apr 2026, by ourselves (self-audited)\n  - Scope: everything\n  - [Changes since audit](https://github.com/paulmillr/scure-starknet/compare/2.2.0..main)\n- at version 0.3.0, in Sep 2023, independently, by [Kudelski Security](https://kudelskisecurity.com)\n  - PDFs: [offline](./audit/2023-09-kudelski-audit-starknet.pdf)\n  - [Changes since audit](https://github.com/paulmillr/scure-starknet/compare/0.3.0..main)\n  - Scope: [scure-starknet](https://github.com/paulmillr/scure-starknet) and its related abstract\n    modules of noble-curves: `curve`, `modular`, `poseidon`, `weierstrass`\n  - The audit has been funded by [Starkware](https://starkware.co)\n\n## Speed\n\n> `npm run benchmark`\n\nBenchmark results on Apple M4:\n\n```\npedersen x 1,131 ops/sec @ 883μs/op\nposeidon x 10,916 ops/sec @ 91μs/op\nverify x 820 ops/sec @ 1ms/op\n```\n\n## Resources\n\n- [Starknet docs](https://docs.starkware.co/starkex/stark-curve.html)\n- [SNARK Security and Performance](https://a16zcrypto.com/content/article/snark-security-and-performance/)\n  calculating security level of snarks.\n\n## License\n\nThe MIT License (MIT)\n\nCopyright (c) 2022 Paul Miller [(https://paulmillr.com)](https://paulmillr.com)\n\nSee LICENSE file.\n","readmeFilename":"README.md"}