{"_id":"@solana/zk-sdk","_rev":"24-b67f1d04ec2890401a9140c2b6ede360","name":"@solana/zk-sdk","dist-tags":{"latest":"0.5.4"},"versions":{"0.1.0":{"name":"@solana/zk-sdk","version":"0.1.0","license":"Apache-2.0","_id":"@solana/zk-sdk@0.1.0","maintainers":[{"name":"solana-devs","email":"npm@solana.org"},{"name":"samkimcrypto","email":"sam.kim@anza.xyz"}],"homepage":"https://anza.xyz/","bugs":{"url":"https://github.com/anza-xyz/agave/issues"},"dist":{"shasum":"f0d5f0bec8688962332dc1fd817627dda493bef6","tarball":"https://registry.npmjs.org/@solana/zk-sdk/-/zk-sdk-0.1.0.tgz","fileCount":4,"integrity":"sha512-5iWTokAx6sOLSJVj7wABhhHtJ2KifXP1yjefBwXhd/BNwl+ZmI5KwQEGPYHGJEDabhqwam2Kwly7N+k0Bj7Bng==","signatures":[{"sig":"MEQCIGIen3umC3tUaG4GscvnZMk8h0tejDxISmLmD3G3tm3kAiAtv6XXvUJzPWT+VQFoGW3OHAFec9QeTbCO5aBNh8J7Aw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":181505},"main":"solana_zk_sdk.js","types":"solana_zk_sdk.d.ts","gitHead":"c33c0392e66c1e023695d00d9c3149dbef19922c","_npmUser":{"name":"samkimcrypto","email":"sam.kim@anza.xyz"},"repository":{"url":"git+https://github.com/anza-xyz/agave.git","type":"git"},"_npmVersion":"10.9.2","description":"Solana ZK SDK","directories":{},"_nodeVersion":"23.6.0","collaborators":["Anza Maintainers <maintainers@anza.xyz>"],"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/zk-sdk_0.1.0_1736731033934_0.9338441054462918","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@solana/zk-sdk","version":"0.1.1","license":"Apache-2.0","_id":"@solana/zk-sdk@0.1.1","maintainers":[{"name":"solana-devs","email":"npm@solana.org"},{"name":"samkimcrypto","email":"sam.kim@anza.xyz"}],"homepage":"https://anza.xyz/","bugs":{"url":"https://github.com/anza-xyz/agave/issues"},"dist":{"shasum":"d1be72485fb1b7c53f558e913346ea1af3f4d89f","tarball":"https://registry.npmjs.org/@solana/zk-sdk/-/zk-sdk-0.1.1.tgz","fileCount":4,"integrity":"sha512-udavyWNQLdwriv3fZB6xG1GRghq39WTUmUpoaJaxa9uXZdpYGBwWWmfH3DAHq2jkOsFDwSPE+Vuu+YkeYbiYHg==","signatures":[{"sig":"MEQCIBIYhIFYUOQw8TmktwzjZ9Rl086v0NUz5UknJQyArfilAiBMxvz6IsiKBM3lfUM1vKM771ZUJJIYrQ/7qDYR1uWNXQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":372273},"main":"solana_zk_sdk.js","types":"solana_zk_sdk.d.ts","gitHead":"9e3d44e6a28feb1fe70e63f16b6cb7c30e9fd773","_npmUser":{"name":"samkimcrypto","email":"sam.kim@anza.xyz"},"repository":{"url":"git+https://github.com/anza-xyz/agave.git","type":"git"},"_npmVersion":"10.9.2","description":"Solana ZK SDK","directories":{},"_nodeVersion":"23.6.0","collaborators":["Anza Maintainers <maintainers@anza.xyz>"],"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/zk-sdk_0.1.1_1737335354463_0.29420062034254046","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@solana/zk-sdk","version":"0.1.2","license":"Apache-2.0","_id":"@solana/zk-sdk@0.1.2","maintainers":[{"name":"solana-devs","email":"npm@solana.org"},{"name":"samkimcrypto","email":"sam.kim@anza.xyz"}],"homepage":"https://anza.xyz/","bugs":{"url":"https://github.com/anza-xyz/agave/issues"},"dist":{"shasum":"052ad8b5c9647be61e43a118c4991e758ad8ef60","tarball":"https://registry.npmjs.org/@solana/zk-sdk/-/zk-sdk-0.1.2.tgz","fileCount":4,"integrity":"sha512-uhuj4d8bk55ArICoe23mxDfYKZYJ7OGyg4fwY+k8mWxroaww/1wHG873086Aanb68tW32EMm9FjRRvztDUVDhA==","signatures":[{"sig":"MEUCIQCEvZ8CpKWuZVFEc4DMlyPTtsetCOMYnH8pLCdlh9apbAIgEZ8eytRxZoLr1fi2XwXMr1c1C9eII7HPo0Hk060Cwkk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":395225},"main":"solana_zk_sdk.js","types":"solana_zk_sdk.d.ts","gitHead":"81649e602ca5431d356269c25020b6edc4f359e5","_npmUser":{"name":"samkimcrypto","email":"sam.kim@anza.xyz"},"repository":{"url":"git+https://github.com/anza-xyz/agave.git","type":"git"},"_npmVersion":"10.9.2","description":"Solana ZK SDK","directories":{},"_nodeVersion":"23.7.0","collaborators":["Anza Maintainers <maintainers@anza.xyz>"],"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/zk-sdk_0.1.2_1741126796245_0.9003427895468541","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@solana/zk-sdk","version":"0.2.0","_id":"@solana/zk-sdk@0.2.0","maintainers":[{"name":"solana-devs","email":"npm@solana.org"},{"name":"samkimcrypto","email":"sam.kim@anza.xyz"}],"dist":{"shasum":"d10684dfe0782afb80c20a370b094ecbbf3b3b98","tarball":"https://registry.npmjs.org/@solana/zk-sdk/-/zk-sdk-0.2.0.tgz","fileCount":11,"integrity":"sha512-0hxBCu27Z6uziiCv69bN7SePkKdJ5tGzC1CoGG7wnyPeYrgBjHfq+nohF6aTj78ZIGa9DBbmOW4BhCltbtAxng==","signatures":[{"sig":"MEYCIQCsuHoNxGkK2kVzJRtP23j3wUwA4xa+3l7n0Cuyd0TXSQIhANkjyKly9nSu57U7eVSiyUU6ItmN/Ua8iQ9qmmCdfLpl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8252089},"type":"module","types":"./dist/node/index.d.ts","browser":"./dist/bundler/index.js","exports":{"./web":{"types":"./dist/web/index.d.ts","import":"./dist/web/index.js","default":"./dist/web/index.js"},"./node":{"types":"./dist/node/index.d.ts","import":"./dist/node/index.cjs","require":"./dist/node/index.cjs"},"./bundler":{"types":"./dist/bundler/index.d.ts","import":"./dist/bundler/index.js","default":"./dist/bundler/index.js"}},"gitHead":"0b3e611650cd9f5ffe874758254910cb6c1b6eb8","scripts":{"lint":"echo 'Skipping JS lint for WASM crate'","test":"echo 'Skipping JS tests for WASM crate'","build":"./compile-wasm.sh","format":"echo 'Skipping JS format for WASM crate'","prepublishOnly":"pnpm build"},"_npmUser":{"name":"samkimcrypto","email":"sam.kim@anza.xyz"},"_npmVersion":"11.6.2","description":"Universal WASM package for the rust solana-zk-sdk","directories":{},"_nodeVersion":"25.2.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/zk-sdk_0.2.0_1765291906259_0.6305401226308656","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@solana/zk-sdk","version":"0.3.1","_id":"@solana/zk-sdk@0.3.1","maintainers":[{"name":"solana-devs","email":"npm@solana.org"},{"name":"samkimcrypto","email":"sam.kim@anza.xyz"}],"dist":{"shasum":"4d4c8dc5c678fcc5453b1348a7b2d26c026db18e","tarball":"https://registry.npmjs.org/@solana/zk-sdk/-/zk-sdk-0.3.1.tgz","fileCount":11,"integrity":"sha512-5Ynl4kwETtboiyqHPwCgQF/iHxPOimTd/geUOj5O2a8hkqsVyROu00nB9JRDX+ft11LRw8sn9fkLJQLpabRASA==","signatures":[{"sig":"MEUCIEK1i5W4/f2cVWK98cvCD/6fg7GdirVFjZIoiNhZVZDaAiEAv+/sdk02lRUUHrD7/E7/5txoLEsdPl7VlIMcAmLC/vI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8277073},"type":"module","types":"./dist/node/index.d.ts","browser":"./dist/bundler/index.js","exports":{"./web":{"types":"./dist/web/index.d.ts","import":"./dist/web/index.js","default":"./dist/web/index.js"},"./node":{"types":"./dist/node/index.d.ts","import":"./dist/node/index.cjs","require":"./dist/node/index.cjs"},"./bundler":{"types":"./dist/bundler/index.d.ts","import":"./dist/bundler/index.js","default":"./dist/bundler/index.js"}},"gitHead":"29f959c3b3c1fcc8af93f982d2f696fd438d0cd8","scripts":{"build":"./compile-wasm.sh","prepublishOnly":"pnpm build"},"_npmUser":{"name":"samkimcrypto","email":"sam.kim@anza.xyz"},"_npmVersion":"11.6.2","description":"Universal WASM package for the rust solana-zk-sdk","directories":{},"_nodeVersion":"25.2.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/zk-sdk_0.3.1_1767838834613_0.04425369542659996","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@solana/zk-sdk","version":"0.4.1","_id":"@solana/zk-sdk@0.4.1","maintainers":[{"name":"solana-devs","email":"npm@solana.org"},{"name":"samkimcrypto","email":"sam.kim@anza.xyz"}],"dist":{"shasum":"aeba89bfbab1be18dd42b84437b932b88b4079a5","tarball":"https://registry.npmjs.org/@solana/zk-sdk/-/zk-sdk-0.4.1.tgz","fileCount":23,"integrity":"sha512-AHLu8CJgPeOygLzVK0h0GBorIZk0Zj6nAG51mJEAFfLRDnPTzF4oG2dWrr5FxO9bu6ChMWhIHXEIiln/L9sTjQ==","signatures":[{"sig":"MEUCIQCFy6thxFigXqGS1rimSnGjnGM4vJtcXvRSD8tyaChESAIgP9LlUIShXfjGtW4+44GhMTI/Huc4iUBc3vWt69q81MM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16406031},"type":"module","_from":"file:solana-zk-sdk-0.4.1.tgz","types":"./dist/node/index.d.ts","browser":"./dist/bundler/index.js","exports":{"./web":{"types":"./dist/web/index.d.ts","import":"./dist/web/index.js","default":"./dist/web/index.js"},"./node":{"types":"./dist/node/index.d.ts","import":"./dist/node/index.js","require":"./dist/node/index.js"},"./bundler":{"types":"./dist/bundler/index.d.ts","import":"./dist/bundler/index.js","default":"./dist/bundler/index.js"}},"scripts":{"build":"make -C .. build-wasm-js-zk-sdk-wasm-js"},"_npmUser":{"name":"samkimcrypto","email":"sam.kim@anza.xyz"},"_resolved":"/private/var/folders/kz/7j1n4_hn3bq5lx555hyz9l880000gn/T/21cde856f178f1ce81150ea07cac64f7/solana-zk-sdk-0.4.1.tgz","_integrity":"sha512-AHLu8CJgPeOygLzVK0h0GBorIZk0Zj6nAG51mJEAFfLRDnPTzF4oG2dWrr5FxO9bu6ChMWhIHXEIiln/L9sTjQ==","_npmVersion":"11.12.1","description":"Universal WASM package for the rust solana-zk-sdk","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/zk-sdk_0.4.1_1776902455754_0.06076470383751742","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@solana/zk-sdk","version":"0.4.2","_id":"@solana/zk-sdk@0.4.2","maintainers":[{"name":"solana-devs","email":"npm@solana.org"},{"name":"samkimcrypto","email":"sam.kim@anza.xyz"}],"dist":{"shasum":"575176005ac0a98acb6f98ca76ade229df48c0d9","tarball":"https://registry.npmjs.org/@solana/zk-sdk/-/zk-sdk-0.4.2.tgz","fileCount":23,"integrity":"sha512-lTc3lvg2b14oP7XURa6jmI2m7CLyJR5otf6TVdzw+xo/A9aYvXEQxCqaK7qpfu2JYuzNxRGqP3RnjAvdOSOEUQ==","signatures":[{"sig":"MEUCIAbb2mW5X2W/6YQEirk2Auf0lkpeDUaH5psfPQM4aI3AAiEA5FuKJK3bLRhSiQqow6J1fZbtaJdEWzha4PV6YiYLS3k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16537830},"type":"module","_from":"file:solana-zk-sdk-0.4.2.tgz","types":"./dist/node/index.d.ts","browser":"./dist/bundler/index.js","exports":{"./web":{"types":"./dist/web/index.d.ts","import":"./dist/web/index.js","default":"./dist/web/index.js"},"./node":{"types":"./dist/node/index.d.ts","import":"./dist/node/index.js","require":"./dist/node/index.js"},"./bundler":{"types":"./dist/bundler/index.d.ts","import":"./dist/bundler/index.js","default":"./dist/bundler/index.js"}},"scripts":{"build":"make -C .. build-wasm-js-zk-sdk-wasm-js"},"_npmUser":{"name":"samkimcrypto","email":"sam.kim@anza.xyz"},"_resolved":"/private/var/folders/kz/7j1n4_hn3bq5lx555hyz9l880000gn/T/ecb64069404be76c65fd9bb7ad00c6a8/solana-zk-sdk-0.4.2.tgz","_integrity":"sha512-lTc3lvg2b14oP7XURa6jmI2m7CLyJR5otf6TVdzw+xo/A9aYvXEQxCqaK7qpfu2JYuzNxRGqP3RnjAvdOSOEUQ==","_npmVersion":"11.12.1","description":"Universal WASM package for the rust solana-zk-sdk","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/zk-sdk_0.4.2_1777611390769_0.5223385191488492","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@solana/zk-sdk","version":"0.5.0","_id":"@solana/zk-sdk@0.5.0","maintainers":[{"name":"solana-devs","email":"npm@solana.org"},{"name":"samkimcrypto","email":"sam.kim@anza.xyz"}],"homepage":"https://github.com/solana-program/zk-elgamal-proof#readme","bugs":{"url":"https://github.com/solana-program/zk-elgamal-proof/issues"},"dist":{"shasum":"683a8ca2eb696ab674a1d33f5546360bea970cb8","tarball":"https://registry.npmjs.org/@solana/zk-sdk/-/zk-sdk-0.5.0.tgz","fileCount":7,"integrity":"sha512-vGEKvexi0p08dnB1JeTncmHzx4B8Y+8RHxBEVF7KSyl1v/4paWSIozEk7CcOPmxM33JfBWipT7ZCL2xabriRbQ==","signatures":[{"sig":"MEUCIQD36+bPPwgynVbZ8nXTfcTe+eHUVeMBwAfNUp2vwsi7KQIgYEKdGOMDwSfDTOs0qSz8ujebOYHGqomHRkDY+biYbJU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@solana%2fzk-sdk@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":39974},"type":"module","_from":"file:solana-zk-sdk-0.5.0.tgz","types":"./dist/node/index.d.ts","browser":"./dist/bundler/index.js","exports":{"./web":{"types":"./dist/web/index.d.ts","import":"./dist/web/index.js","default":"./dist/web/index.js"},"./node":{"types":"./dist/node/index.d.ts","import":"./dist/node/index.js","require":"./dist/node/index.js"},"./bundler":{"types":"./dist/bundler/index.d.ts","import":"./dist/bundler/index.js","default":"./dist/bundler/index.js"}},"scripts":{"build":"make -C .. build-wasm-js-zk-sdk-wasm-js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:168d027b-a5fd-412c-91d7-fdb5e9a5d2b1"}},"_resolved":"/tmp/825935aab7cb59983c83b6f10730dd52/solana-zk-sdk-0.5.0.tgz","_integrity":"sha512-vGEKvexi0p08dnB1JeTncmHzx4B8Y+8RHxBEVF7KSyl1v/4paWSIozEk7CcOPmxM33JfBWipT7ZCL2xabriRbQ==","deprecated":"Broken release — use 0.5.1 or later","repository":{"url":"git+https://github.com/solana-program/zk-elgamal-proof.git","type":"git","directory":"zk-sdk-wasm-js"},"_npmVersion":"11.16.0","description":"Universal WASM package for the rust solana-zk-sdk","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/zk-sdk_0.5.0_1785849855000_0.04477196337488043","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@solana/zk-sdk","version":"0.5.1","_id":"@solana/zk-sdk@0.5.1","maintainers":[{"name":"solana-devs","email":"npm@solana.org"},{"name":"samkimcrypto","email":"sam.kim@anza.xyz"}],"homepage":"https://github.com/solana-program/zk-elgamal-proof#readme","bugs":{"url":"https://github.com/solana-program/zk-elgamal-proof/issues"},"dist":{"shasum":"aa4d7eb024b6da984a35bfb6387665ff6049ed19","tarball":"https://registry.npmjs.org/@solana/zk-sdk/-/zk-sdk-0.5.1.tgz","fileCount":22,"integrity":"sha512-dWGAzjApjsVGtwllaXxlD2DxpCdTD4yr1eMQOJBSZglTe0dtVW2TFShABRNkWtD11ZekZ+6kODVSDkWt6RL7mw==","signatures":[{"sig":"MEUCIEchyrXKxohgzsQ2zeODO+Ir5jUnbkV7I88aaD5eezgJAiEAya38noL3+K9QZjCZWS+06GKgiN8nY9OwkjgDEqAGosE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@solana%2fzk-sdk@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8600276},"type":"module","_from":"file:solana-zk-sdk-0.5.1.tgz","types":"./dist/node/index.d.ts","browser":"./dist/bundler/index.js","exports":{"./web":{"types":"./dist/web/index.d.ts","import":"./dist/web/index.js","default":"./dist/web/index.js"},"./node":{"types":"./dist/node/index.d.ts","import":"./dist/node/index.js","require":"./dist/node/index.js"},"./bundler":{"types":"./dist/bundler/index.d.ts","import":"./dist/bundler/index.js","default":"./dist/bundler/index.js"}},"scripts":{"build":"make -C .. build-wasm-js-zk-sdk-wasm-js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:168d027b-a5fd-412c-91d7-fdb5e9a5d2b1"}},"_resolved":"/tmp/d6f625dbf3a800727848881874a132b3/solana-zk-sdk-0.5.1.tgz","_integrity":"sha512-dWGAzjApjsVGtwllaXxlD2DxpCdTD4yr1eMQOJBSZglTe0dtVW2TFShABRNkWtD11ZekZ+6kODVSDkWt6RL7mw==","repository":{"url":"git+https://github.com/solana-program/zk-elgamal-proof.git","type":"git","directory":"zk-sdk-wasm-js"},"_npmVersion":"11.16.0","description":"Universal WASM package for the rust solana-zk-sdk","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/zk-sdk_0.5.1_1785858405296_0.7155504141270794","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@solana/zk-sdk","version":"0.5.2","_id":"@solana/zk-sdk@0.5.2","maintainers":[{"name":"solana-devs","email":"npm@solana.org"},{"name":"samkimcrypto","email":"sam.kim@anza.xyz"}],"homepage":"https://github.com/solana-program/zk-elgamal-proof#readme","bugs":{"url":"https://github.com/solana-program/zk-elgamal-proof/issues"},"dist":{"shasum":"472937d7e7c19b3bc335abd3866aca53400761c4","tarball":"https://registry.npmjs.org/@solana/zk-sdk/-/zk-sdk-0.5.2.tgz","fileCount":22,"integrity":"sha512-4Bsjr45Vy7HMY7VSEGwGI/qgOXR0ytKH5XZtW2CbJcFdL1Txfd2tFdOL17q8P0ZXWgfwTGurJi96bWZs/XlHqg==","signatures":[{"sig":"MEYCIQD5HBFJGG1JnWIP5MNGB1PSNR8HDz8zz0aq6k2+FdrSpwIhAKuZ1hwRat5mrNJe7SbTywTpazxlXWPqwM2ROCqd60fM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@solana%2fzk-sdk@0.5.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8603042},"main":"./dist/node/index.js","type":"module","_from":"file:solana-zk-sdk-0.5.2.tgz","types":"./dist/node/index.d.ts","browser":"./dist/bundler/index.js","exports":{".":{"node":{"types":"./dist/node/index.d.ts","default":"./dist/node/index.js"},"browser":{"types":"./dist/bundler/index.d.ts","default":"./dist/bundler/index.js"},"default":{"types":"./dist/bundler/index.d.ts","default":"./dist/bundler/index.js"}},"./web":{"types":"./dist/web/index.d.ts","import":"./dist/web/index.js","default":"./dist/web/index.js"},"./node":{"types":"./dist/node/index.d.ts","import":"./dist/node/index.js","require":"./dist/node/index.js"},"./bundler":{"node":{"types":"./dist/node/index.d.ts","default":"./dist/node/index.js"},"types":"./dist/bundler/index.d.ts","import":"./dist/bundler/index.js","default":"./dist/bundler/index.js"}},"scripts":{"build":"make -C .. build-wasm-js-zk-sdk-wasm-js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:168d027b-a5fd-412c-91d7-fdb5e9a5d2b1"}},"_resolved":"/tmp/5292b81d29337a29c5824a94da77cd4e/solana-zk-sdk-0.5.2.tgz","_integrity":"sha512-4Bsjr45Vy7HMY7VSEGwGI/qgOXR0ytKH5XZtW2CbJcFdL1Txfd2tFdOL17q8P0ZXWgfwTGurJi96bWZs/XlHqg==","repository":{"url":"git+https://github.com/solana-program/zk-elgamal-proof.git","type":"git","directory":"zk-sdk-wasm-js"},"_npmVersion":"11.17.0","description":"Universal WASM package for the rust solana-zk-sdk","directories":{},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/zk-sdk_0.5.2_1787831636497_0.3755251679529288","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"@solana/zk-sdk","version":"0.5.3","_id":"@solana/zk-sdk@0.5.3","maintainers":[{"name":"solana-devs","email":"npm@solana.org"},{"name":"samkimcrypto","email":"sam.kim@anza.xyz"}],"homepage":"https://github.com/solana-program/zk-elgamal-proof#readme","bugs":{"url":"https://github.com/solana-program/zk-elgamal-proof/issues"},"dist":{"shasum":"0ef5c0ad793b0d5f45087ef187498c1d3d7633cb","tarball":"https://registry.npmjs.org/@solana/zk-sdk/-/zk-sdk-0.5.3.tgz","fileCount":22,"integrity":"sha512-vgne1g223Yw7AIgEfX5WnhBZ1gTyYjMzXu/fkXl/yimYSPOJZvn54UI4J/OrxwHGgxfsG6Rs+hUR6ovfPIX6Yg==","signatures":[{"sig":"MEUCIQDbCdU9w5AaAkp8vjr/ucejZ875Z/ZFQDyKFI3/kYnnlgIgZlLk9LM5161D5pyT8rms6e8lzu/czxwSiG9t0f1W+88=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@solana%2fzk-sdk@0.5.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8631869},"main":"./dist/node/index.js","type":"module","_from":"file:solana-zk-sdk-0.5.3.tgz","types":"./dist/node/index.d.ts","browser":"./dist/bundler/index.js","exports":{".":{"node":{"types":"./dist/node/index.d.ts","default":"./dist/node/index.js"},"browser":{"types":"./dist/bundler/index.d.ts","default":"./dist/bundler/index.js"},"default":{"types":"./dist/bundler/index.d.ts","default":"./dist/bundler/index.js"}},"./web":{"types":"./dist/web/index.d.ts","import":"./dist/web/index.js","default":"./dist/web/index.js"},"./node":{"types":"./dist/node/index.d.ts","import":"./dist/node/index.js","require":"./dist/node/index.js"},"./bundler":{"node":{"types":"./dist/node/index.d.ts","default":"./dist/node/index.js"},"types":"./dist/bundler/index.d.ts","import":"./dist/bundler/index.js","default":"./dist/bundler/index.js"}},"scripts":{"build":"make -C .. build-wasm-js-zk-sdk-wasm-js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:168d027b-a5fd-412c-91d7-fdb5e9a5d2b1"}},"_resolved":"/tmp/51c74598bf2c5e8e5243133b235e862a/solana-zk-sdk-0.5.3.tgz","_integrity":"sha512-vgne1g223Yw7AIgEfX5WnhBZ1gTyYjMzXu/fkXl/yimYSPOJZvn54UI4J/OrxwHGgxfsG6Rs+hUR6ovfPIX6Yg==","repository":{"url":"git+https://github.com/solana-program/zk-elgamal-proof.git","type":"git","directory":"zk-sdk-wasm-js"},"_npmVersion":"11.19.0","description":"Universal WASM package for the rust solana-zk-sdk","directories":{},"_nodeVersion":"24.20.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/zk-sdk_0.5.3_1789561955121_0.8163364272851208","host":"s3://npm-registry-packages-npm-production"}},"0.5.4":{"_id":"@solana/zk-sdk@0.5.4","bugs":{"url":"https://github.com/solana-program/zk-elgamal-proof/issues"},"dist":{"shasum":"5059318c0bdb420d2846a781b3fe0cfd4f6ef3bd","tarball":"https://registry.npmjs.org/@solana/zk-sdk/-/zk-sdk-0.5.4.tgz","fileCount":22,"integrity":"sha512-pz9zvcRDg1rrB79rv2no5Ko2jOChxZYbKAm+nsbXMAFVGuFbkbnn1H77iTdxzvlxc3szPym/xRfsvlkOhVVh1g==","signatures":[{"sig":"MEYCIQCYBTYtwlSkdWGb/dJk2o1rRKvoTcf9dWhH3m8sa2gjEAIhAO+hvRW9u+4QDl/CTBAo9Ue++R9Tz7pJ4ybCs5BmBmOj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDOFoZA5I1KxhNeSPF7dp0cfXWK3s7n8ueGMccetcn/fAIhAJ9Rod21Ygh02ZiEhW4lDd6w11H57x3uOPpT5K8NLPwv"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@solana%2fzk-sdk@0.5.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8751002},"main":"./dist/node/index.js","name":"@solana/zk-sdk","type":"module","_from":"file:solana-zk-sdk-0.5.4.tgz","types":"./dist/node/index.d.ts","browser":"./dist/bundler/index.js","exports":{".":{"node":{"types":"./dist/node/index.d.ts","default":"./dist/node/index.js"},"browser":{"types":"./dist/bundler/index.d.ts","default":"./dist/bundler/index.js"},"default":{"types":"./dist/bundler/index.d.ts","default":"./dist/bundler/index.js"}},"./web":{"types":"./dist/web/index.d.ts","import":"./dist/web/index.js","default":"./dist/web/index.js"},"./node":{"types":"./dist/node/index.d.ts","import":"./dist/node/index.js","require":"./dist/node/index.js"},"./bundler":{"node":{"types":"./dist/node/index.d.ts","default":"./dist/node/index.js"},"types":"./dist/bundler/index.d.ts","import":"./dist/bundler/index.js","default":"./dist/bundler/index.js"}},"scripts":{"build":"make -C .. build-wasm-js-zk-sdk-wasm-js"},"version":"0.5.4","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"168d027b-a5fd-412c-91d7-fdb5e9a5d2b1"}},"homepage":"https://github.com/solana-program/zk-elgamal-proof#readme","_resolved":"/tmp/cd17a9a66b84842527838775933e49bd/solana-zk-sdk-0.5.4.tgz","_integrity":"sha512-pz9zvcRDg1rrB79rv2no5Ko2jOChxZYbKAm+nsbXMAFVGuFbkbnn1H77iTdxzvlxc3szPym/xRfsvlkOhVVh1g==","repository":{"url":"git+https://github.com/solana-program/zk-elgamal-proof.git","type":"git","directory":"zk-sdk-wasm-js"},"_npmVersion":"11.19.0","description":"Universal WASM package for the rust solana-zk-sdk","directories":{},"maintainers":[{"name":"solana-devs","email":"npm@solana.org"},{"name":"samkimcrypto","email":"sam.kim@anza.xyz"}],"_nodeVersion":"24.21.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/zk-sdk_0.5.4_1791495958813_0.589305622223397"}}},"time":{"created":"2025-01-13T01:17:13.836Z","modified":"2026-10-08T21:46:00.612Z","0.1.0":"2025-01-13T01:17:14.112Z","0.1.1":"2025-01-20T01:09:14.680Z","0.1.2":"2025-03-04T22:19:56.437Z","0.2.0":"2025-12-09T14:51:46.588Z","0.3.0":"2026-01-07T09:32:26.166Z","0.3.1":"2026-01-08T02:20:35.011Z","0.4.0":"2026-04-22T23:23:16.186Z","0.4.1":"2026-04-23T00:00:56.247Z","0.4.2":"2026-05-01T04:56:31.305Z","0.5.0":"2026-08-04T13:24:15.138Z","0.5.1":"2026-08-04T15:46:45.601Z","0.5.2":"2026-08-27T11:53:56.856Z","0.5.3":"2026-09-16T12:32:35.425Z","0.5.4":"2026-10-08T21:45:59.011Z"},"bugs":{"url":"https://github.com/solana-program/zk-elgamal-proof/issues"},"homepage":"https://github.com/solana-program/zk-elgamal-proof#readme","repository":{"url":"git+https://github.com/solana-program/zk-elgamal-proof.git","type":"git","directory":"zk-sdk-wasm-js"},"description":"Universal WASM package for the rust solana-zk-sdk","maintainers":[{"name":"solana-devs","email":"npm@solana.org"},{"name":"samkimcrypto","email":"sam.kim@anza.xyz"}],"readme":"# `@solana/zk-sdk`\n\nWebAssembly bindings for the Rust [`solana-zk-sdk`](https://github.com/solana-program/zk-elgamal-proof/tree/main/zk-sdk). Use it from Node, the browser, or a bundler to generate the zero-knowledge proofs used by the Token-2022 confidential-balances extension, and to derive the ElGamal and AES keys those balances are encrypted under.\n\n## Install\n\n```sh\nnpm install @solana/zk-sdk\n```\n\nThe package ships three builds, one per `wasm-pack` target. Import the package root and the right one is selected for you; the subpaths are there when you need to pin a build explicitly:\n\n| Import | Target | Init |\n|---|---|---|\n| `@solana/zk-sdk` | Node and bundlers — `node` gets the Node build, browser bundlers get the bundler build | none, ready on import |\n| `@solana/zk-sdk/node` | Node.js | none, ready on import |\n| `@solana/zk-sdk/web` | browser, no bundler | call the default `init()` once before use |\n| `@solana/zk-sdk/bundler` | Vite / webpack / etc. | none, the bundler loads the wasm |\n\n```js\n// Node or a bundler\nimport { ConfidentialKeys } from \"@solana/zk-sdk\";\n\n// Browser without a bundler\nimport init, { ConfidentialKeys } from \"@solana/zk-sdk/web\";\nawait init();\n```\n\nThe `web` build is the one case the root export cannot pick for you: it needs an explicit `init()`, so import it by subpath. `@solana/zk-sdk/bundler` also resolves to the Node build under the `node` condition — the ESM bundler build cannot load its `.wasm` outside a bundler, so a Node runtime (including the server side of a bundled app) is always served the Node build.\n\n## Confidential-balances key derivation\n\nA confidential token account is encrypted under two keys: an **ElGamal keypair** (the balance ciphertext) and an **AES key** (the `decryptable_available_balance` fast-path). `ConfidentialKeys` derives both deterministically from a single source of key material, through a shared HKDF-SHA512 chain identified by the protocol string `solana-conf-bal/v1`. Re-deriving from the same input always yields the same keys, on any platform that implements the same chain.\n\nThere is one entry point per source of key material. Pick the one that matches how your wallet holds its secret:\n\n| Source | Method | Notes |\n|---|---|---|\n| WebAuthn passkey | `prfInput` + `fromPrf` | the only viable path for passkeys |\n| Ed25519 wallet signature | `signerMessage` + `fromSignature` | today's universal wallet path |\n| Raw input key material | `fromIkm` | Secure Enclave / KMS HMAC, BIP39 seed, etc. |\n\nAll three converge on the same spine, so `fromSignature(sig)`, `fromIkm(bytes)`, and `fromPrf(out)` over the same input bytes produce identical keys.\n\n```js\nconst keys = ConfidentialKeys.fromPrf(prfOutput);\nconst elgamal = keys.elgamal(); // ElGamalKeypair\nconst ae = keys.ae();           // AeKey\n```\n\n### The standard message\n\n`signerMessage()` and `prfInput()` take no arguments and return the constant standard message, the bytes `solana-conf-bal/v1`. Seed-scoped derivation lives in `signerMessageWithSeed` and `prfInputWithSeed`. The derived keys are bound to the wallet alone, one key pair for all of the wallet's confidential accounts.\n\nKeys match the other SDKs (the Token-2022 clients, Rust, Go) on the deterministic Ed25519 path, since they all sign the same constant message with the same wallet key. The PRF and raw-IKM paths feed different input material into the KDF, so they derive different keys for the same wallet and reproduce them only from the same credential or key material. An account keeps whichever adapter provisioned it.\n\nWallets SHOULD refuse to sign any message starting with `solana-conf-bal/v1` through generic `signMessage` and expose the derivation signature only via a dedicated key-derivation capability, since the signature is the account's decryption key material.\n\n### Non-standard seed scoping\n\n`signerMessageWithSeed(seed)` and `prfInputWithSeed(seed)` build `solana-conf-bal/v1 || seed` for schemes that genuinely need keys scoped more finely than the wallet. Keys derived from a non-empty seed will not match the standard keys other clients derive for the same wallet. For single-signer PDA wallets specifically, use `pdaWalletPublicSeed` to bind the derived keys to the wallet program, wallet PDA, mint, and concrete token account:\n\n```js\nconst publicSeed = ConfidentialKeys.pdaWalletPublicSeed(\n  programId.toBytes(),\n  walletPda.toBytes(),\n  mint.toBytes(),\n  tokenAccount.toBytes(),\n);\nconst message = ConfidentialKeys.signerMessageWithSeed(publicSeed);\n```\n\n### Passkeys (WebAuthn PRF)\n\nPasskey ECDSA signing is randomized by spec, so signature-based derivation is impossible on passkey authenticators. The PRF (`hmac-secret`) extension is deterministic by construction and is the only path. PRF must be enabled when the credential is **registered**; legacy credentials that predate it cannot be used.\n\n```js\nimport { ConfidentialKeys } from \"@solana/zk-sdk\";\n\n// 1. One-time, at credential registration (pure WebAuthn, not this SDK).\n//    Enabling PRF here is mandatory.\nconst cred = await navigator.credentials.create({\n  publicKey: { /* rp, user, challenge, pubKeyCredParams */, extensions: { prf: {} } },\n});\nconst credentialId = new Uint8Array(cred.rawId);\n\n// 2. Per session: evaluate the PRF over the standard input, then derive.\nconst salt = ConfidentialKeys.prfInput();\n\nconst assertion = await navigator.credentials.get({\n  publicKey: {\n    challenge: crypto.getRandomValues(new Uint8Array(32)),\n    allowCredentials: [{ id: credentialId, type: \"public-key\" }],\n    extensions: { prf: { eval: { first: salt } } },\n  },\n});\n\nconst prf = assertion.getClientExtensionResults().prf?.results?.first;\nif (!prf) throw new Error(\"authenticator returned no PRF result\");\n\nconst keys = ConfidentialKeys.fromPrf(new Uint8Array(prf));\n```\n\n`fromPrf` accepts a 32-byte output (a single `prf.results.first`) or a 64-byte output (`first || second` concatenated), and rejects an all-zero result.\n\n`prfInput` returns the standard message `solana-conf-bal/v1`, byte-identical to `signerMessage` (`prfInputWithSeed` mirrors `signerMessageWithSeed` for non-standard scoping). It is passed to `prf.eval.first` as-is: browsers apply the mandatory `SHA-256(\"WebAuthn PRF\" || 0x00 || input)` prefixing before the authenticator, so the input must not be pre-hashed. A non-browser or direct-CTAP `hmac-secret` consumer must reproduce that prefixing over this message to derive matching keys.\n\n### Ed25519 wallet signature\n\nFor a normal Solana wallet, derive from a single deterministic Ed25519 signature over the standard message.\n\n```js\nimport { ConfidentialKeys } from \"@solana/zk-sdk\";\n\nconst message = ConfidentialKeys.signerMessage();      // constant: \"solana-conf-bal/v1\"\nconst signature = await wallet.signMessage(message);   // 64-byte Ed25519 signature\nconst keys = ConfidentialKeys.fromSignature(signature);\n```\n\n`wallet.signMessage` stands in for whatever signing capability the integration has; a wallet that implements the refusal above provides this signature through a dedicated derivation API instead, and a filesystem or server signer just signs the bytes. The signer must be deterministic (RFC 8032): a randomized one returns a different signature, and different keys, on every call.\n\nThe all-zero (default) signature is rejected: some signers return it instead of raising an error, and the resulting keys would be predictable.\n\n### Raw input key material\n\nWhen the wallet exposes an HMAC/HKDF primitive directly (iOS Secure Enclave, AWS KMS `GenerateMac`, a BIP39 seed, HKDF over an Ed25519 seed), pass that output straight in.\n\n```js\nconst keys = ConfidentialKeys.fromIkm(ikm); // 32 to 65535 bytes\n```\n\n## Things to get right\n\n- **Identity bindings are forever.** WebAuthn PRF output is bound to the Relying Party ID; the signature path is bound to the signing key; raw IKM is bound to its source. Change the binding and the old balance can no longer be decrypted. Commit to a stable RP ID at provisioning and never change it.\n- **Cache the derived keys for the session.** Do not re-prompt for a signature or device unlock per transfer. Derive once, hold the keys in memory, wipe on background.\n- **Back up device-bound keys.** Deterministic derivation does not survive device or credential loss. Passkey and Secure Enclave wallets need an explicit recovery path (synced credentials or wrapped-key escrow).\n\n## Background\n\nThe derivation scheme and the per-wallet adapter typology are described in the Solana confidential-balances single-signer derivation framework. The Rust spine and its test vectors live in [`zk-sdk/src/encryption/derivation.rs`](https://github.com/solana-program/zk-elgamal-proof/blob/main/zk-sdk/src/encryption/derivation.rs).\n","readmeFilename":"README.md"}