{"_id":"@paulmillr/trusted-setups","_rev":"5-467342da2b430a542226762c7531cb07","name":"@paulmillr/trusted-setups","dist-tags":{"latest":"0.3.0"},"versions":{"0.1.0":{"name":"@paulmillr/trusted-setups","version":"0.1.0","keywords":["ethereum","eth","kzg","sign","trusted setup"],"author":{"url":"https://paulmillr.com","name":"Paul Miller"},"license":"MIT","_id":"@paulmillr/trusted-setups@0.1.0","maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"homepage":"https://github.com/paulmillr/trusted-setups#readme","bugs":{"url":"https://github.com/paulmillr/trusted-setups/issues"},"dist":{"shasum":"c7ee2d290f6455a2ed6f565945453be6e4a436b5","tarball":"https://registry.npmjs.org/@paulmillr/trusted-setups/-/trusted-setups-0.1.0.tgz","fileCount":12,"integrity":"sha512-HehK60oGqSp7osgdnjv8doAsf0hCVHA4FPwhaJGWORvvxsfIlV1+izXf0jZH9UE5qh1EFBrwXdwhH703Op+kPQ==","signatures":[{"sig":"MEQCIFf1yWXpCjyvaAqDFDpqMjMiwiWIGQ4rn8k0WDJaO2EGAiBVQ8QOVSlqxeANEBy/G+e5N6ucbNDhnSv7EUs04A8+DQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3346886},"main":"index.js","types":"./index.d.ts","exports":{".":{"import":"./esm/index.js","require":"./index.js"},"./fast.js":{"import":"./esm/fast.js","require":"./fast.js"}},"gitHead":"44277d69381993e1e5018d6b5219843458bec374","scripts":{"test":"node test.mjs","build":"node build.mjs"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"repository":{"url":"git+https://github.com/paulmillr/trusted-setups.git","type":"git"},"_npmVersion":"10.8.2","description":"Easily access KZG / ETH trusted setups in JS","directories":{},"sideEffects":false,"_nodeVersion":"22.8.0","_hasShrinkwrap":false,"devDependencies":{"c-kzg":"4.0.1","kzg-wasm":"0.4.0","micro-should":"0.4.0","@noble/curves":"1.6.0","@noble/hashes":"1.5.0","micro-eth-signer":"0.11.0"},"_npmOperationalInternal":{"tmp":"tmp/trusted-setups_0.1.0_1726644297443_0.924355029903329","host":"s3://npm-registry-packages"}},"0.1.1":{"name":"@paulmillr/trusted-setups","version":"0.1.1","keywords":["ethereum","eth","kzg","sign","trusted setup"],"author":{"url":"https://paulmillr.com","name":"Paul Miller"},"license":"MIT","_id":"@paulmillr/trusted-setups@0.1.1","maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"homepage":"https://github.com/paulmillr/trusted-setups#readme","bugs":{"url":"https://github.com/paulmillr/trusted-setups/issues"},"dist":{"shasum":"e7b7fa67bf478d5ae2b55e3a80a001eca41c0c48","tarball":"https://registry.npmjs.org/@paulmillr/trusted-setups/-/trusted-setups-0.1.1.tgz","fileCount":9,"integrity":"sha512-vK6rnK9tQ3044CxRzmF46y6SUCkgNWzYwhhLV5Y/4jY7YKKX9EhOcYNIuZgc3qkxxh3MBw8tI6EI6wCdpxtC2w==","signatures":[{"sig":"MEUCIETy6puvp47pwQexeUx1eZOUKBGJOklZsRaOuzOfwv4WAiEAz3RwlfPX1gFcxns5yyAIkXWI1ix9uVDwSbey5jsOeR0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@paulmillr%2ftrusted-setups@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3346609},"main":"index.js","exports":{".":{"import":"./esm/index.js","require":"./index.js"},"./fast.js":{"import":"./esm/fast.js","require":"./fast.js"}},"gitHead":"68b86ff6715fee3d0f5dc3810621b43c702a89c6","scripts":{"test":"node test.mjs","build":"node build.mjs"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"repository":{"url":"git+https://github.com/paulmillr/trusted-setups.git","type":"git"},"_npmVersion":"10.8.3","description":"Easily access KZG / ETH trusted setups in JS","directories":{},"sideEffects":false,"_nodeVersion":"20.17.0","_hasShrinkwrap":false,"devDependencies":{"c-kzg":"4.0.1","kzg-wasm":"0.4.0","micro-should":"0.4.0","@noble/curves":"1.6.0","@noble/hashes":"1.5.0","micro-eth-signer":"0.11.0"},"_npmOperationalInternal":{"tmp":"tmp/trusted-setups_0.1.1_1726845312805_0.33683504084001736","host":"s3://npm-registry-packages"}},"0.1.2":{"name":"@paulmillr/trusted-setups","version":"0.1.2","keywords":["ethereum","eth","kzg","sign","trusted setup"],"author":{"url":"https://paulmillr.com","name":"Paul Miller"},"license":"MIT","_id":"@paulmillr/trusted-setups@0.1.2","maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"homepage":"https://github.com/paulmillr/trusted-setups#readme","bugs":{"url":"https://github.com/paulmillr/trusted-setups/issues"},"dist":{"shasum":"cec89fde3b349c7a91e4e6e4900cc8a153715e47","tarball":"https://registry.npmjs.org/@paulmillr/trusted-setups/-/trusted-setups-0.1.2.tgz","fileCount":13,"integrity":"sha512-NKpT0G4Blj+Vp9lbfczb7iPJm3B4njpzX8NXiQs8G51N4CLndCvLqEvksFlTJbNLwl3iwsGZHSvJRdfhfOHLwQ==","signatures":[{"sig":"MEUCICAqmeu8JE8jpphNWS0ZLUe4Kru+fXkX/m5UDvUJpRq/AiEA9TKfcAJsPJfaHQlQqVBDziJv2QNJ7W5LvhdM1dMODMY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@paulmillr%2ftrusted-setups@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3346995},"main":"index.js","types":"./index.d.ts","exports":{".":{"import":"./esm/index.js","require":"./index.js"},"./fast.js":{"import":"./esm/fast.js","require":"./fast.js"}},"gitHead":"32116a69d61aad1bb7807111448ad4c5c1570aa4","scripts":{"test":"node test.mjs","build":"node build.mjs"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"repository":{"url":"git+https://github.com/paulmillr/trusted-setups.git","type":"git"},"_npmVersion":"10.8.3","description":"Easily access KZG / ETH trusted setups in JS","directories":{},"sideEffects":false,"_nodeVersion":"20.17.0","_hasShrinkwrap":false,"devDependencies":{"c-kzg":"4.0.1","kzg-wasm":"0.4.0","micro-should":"0.4.0","@noble/curves":"1.6.0","@noble/hashes":"1.5.0","micro-eth-signer":"0.11.0"},"_npmOperationalInternal":{"tmp":"tmp/trusted-setups_0.1.2_1726892710485_0.019994303343343622","host":"s3://npm-registry-packages"}},"0.2.0":{"name":"@paulmillr/trusted-setups","version":"0.2.0","keywords":["ethereum","eth","kzg","sign","trusted setup"],"author":{"url":"https://paulmillr.com","name":"Paul Miller"},"license":"MIT","_id":"@paulmillr/trusted-setups@0.2.0","maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"homepage":"https://github.com/paulmillr/trusted-setups#readme","bugs":{"url":"https://github.com/paulmillr/trusted-setups/issues"},"dist":{"shasum":"5aadb24b28f9e876461364a0302a276212cdb505","tarball":"https://registry.npmjs.org/@paulmillr/trusted-setups/-/trusted-setups-0.2.0.tgz","fileCount":21,"integrity":"sha512-MzE7jI4ksoHy1iYffUhdxtRgCvWmlWH4vb7jx8oPx3Ua2YTH/QS+/1O5slTFE6TEKJbaAgi2EcipawUSVARxyQ==","signatures":[{"sig":"MEUCIQC6cSeUpM5Gw5x5jwHWWEFrDiF6aw8hUps5JBs8YrSlmQIgCBH1VD1M7LEJ79FCWuQJIkSA0qwJJvc4ZHrhHlUJnaU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@paulmillr%2ftrusted-setups@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11370954},"main":"cjs/small-kzg.js","types":"./cjs/small-kzg.d.ts","exports":{".":{"import":"./esm/small-kzg.js","require":"./cjs/small-kzg.js"},"./fast-kzg.js":{"import":"./esm/fast-kzg.js","require":"./cjs/fast-kzg.js"},"./small-kzg.js":{"import":"./esm/small-kzg.js","require":"./cjs/small-kzg.js"},"./fast-peerdas.js":{"import":"./esm/fast-peerdas.js","require":"./cjs/fast-peerdas.js"},"./small-peerdas.js":{"import":"./esm/small-peerdas.js","require":"./cjs/small-peerdas.js"}},"gitHead":"5f2fc35370a267139c1cc9d0632193bec05f6438","scripts":{"test":"cd test; npm install; node index.test.js","build":"node test/build.mjs"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"repository":{"url":"git+https://github.com/paulmillr/trusted-setups.git","type":"git"},"_npmVersion":"11.3.0","description":"Easily access KZG / PeerDAS ETH trusted setups in JS","directories":{},"sideEffects":false,"_nodeVersion":"20.19.1","_hasShrinkwrap":false,"devDependencies":{"c-kzg":"4.0.1","kzg-wasm":"0.4.0","micro-should":"0.5.2","@noble/curves":"1.9.1","@noble/hashes":"1.8.0","@paulmillr/jsbt":"0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/trusted-setups_0.2.0_1747220895071_0.3390399601111824","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@paulmillr/trusted-setups","description":"Easily access KZG (EIP-4844) / PeerDAS (EIP-7594) ETH trusted setups in JS","version":"0.3.0","devDependencies":{"@paulmillr/jsbt":"0.4.3","typescript":"5.9.2"},"scripts":{"build":"cd test; npm install; node build.js","test":"cd test; npm install; node index.test.js"},"keywords":["ethereum","eth","kzg","sign","trusted setup","peerdas","eip7594"],"repository":{"type":"git","url":"git+https://github.com/paulmillr/trusted-setups.git"},"type":"module","main":"small-kzg.js","module":"small-kzg.js","types":"small-kzg.d.ts","sideEffects":false,"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"license":"MIT","_id":"@paulmillr/trusted-setups@0.3.0","gitHead":"d71083349d975a9cdc351b510cd6777a759a1260","bugs":{"url":"https://github.com/paulmillr/trusted-setups/issues"},"homepage":"https://github.com/paulmillr/trusted-setups#readme","_nodeVersion":"24.6.0","_npmVersion":"11.5.1","dist":{"integrity":"sha512-j752FHV8nYS8xG7msHj0kkakeeh/gUgcJM48i0sDihMcbHK1bmP2ZeObqyausF1NhfkDYkx5t30yKAuLQIWXog==","shasum":"fd3afd41afd1a250bc5b7b89e899f96bf17765db","tarball":"https://registry.npmjs.org/@paulmillr/trusted-setups/-/trusted-setups-0.3.0.tgz","fileCount":12,"unpackedSize":6128586,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@paulmillr%2ftrusted-setups@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICl/p2dTv20GRw3iwBol8z/FFSFfjgJF+mkBjsNiibTuAiAQdir28asZ//OtP8L2/Y3+rH5sqjR2XH/tM5Re+gIeBA=="}]},"_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/trusted-setups_0.3.0_1755713658725_0.2649172875664607"},"_hasShrinkwrap":false}},"time":{"created":"2024-09-18T07:24:57.333Z","modified":"2025-08-20T18:14:19.400Z","0.1.0":"2024-09-18T07:24:57.697Z","0.1.1":"2024-09-20T15:15:13.086Z","0.1.2":"2024-09-21T04:25:10.843Z","0.2.0":"2025-05-14T11:08:15.368Z","0.3.0":"2025-08-20T18:14:19.011Z"},"bugs":{"url":"https://github.com/paulmillr/trusted-setups/issues"},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"license":"MIT","homepage":"https://github.com/paulmillr/trusted-setups#readme","keywords":["ethereum","eth","kzg","sign","trusted setup","peerdas","eip7594"],"repository":{"type":"git","url":"git+https://github.com/paulmillr/trusted-setups.git"},"description":"Easily access KZG (EIP-4844) / PeerDAS (EIP-7594) ETH trusted setups in JS","maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"readme":"# trusted-setups\n\nEasily access KZG (EIP-4844) + PeerDAS (EIP-7594) / ETH [trusted setups](https://vitalik.eth.limo/general/2022/03/14/trustedsetup.html) in JS.\n\nExports 5 files:\n\n- `small-kzg.js` - 400KB KZG setup\n- `small-peerdas.js` - ~800KB KZG+PeerDAS setup\n- `fast-kzg.js` - fast ~800KB KZG setup for [eth-signer](https://github.com/paulmillr/micro-eth-signer)\n- `fast-peerdas.js` - fast 3.1MB KZG+PeerDAS setup for [eth-signer](https://github.com/paulmillr/micro-eth-signer)\n- `trusted_setup.json`, for c-kzg and others\n\n## Usage\n\n> npm install @paulmillr/trusted-setups\n\nThe package is located in namespace for security / anti-squatting reasons.\n\nWe test against [eth-signer](https://github.com/paulmillr/micro-eth-signer),\n[kzg-wasm](https://github.com/ethereumjs/kzg-wasm) and\n[c-kzg](https://github.com/ethereum/c-kzg-4844).\nOther libraries with similar API should also work.\n\n```js\nimport { trustedSetup } from '@paulmillr/trusted-setups/small-kzg.js';\n// import { trustedSetup } from '@paulmillr/trusted-setups/small-peerdas.js';\n// import { trustedSetup } from '@paulmillr/trusted-setups/fast-kzg.js';\n// import { trustedSetup } from '@paulmillr/trusted-setups/fast-peerdas.js';\n\n// Typed as:\ntype trustedSetup = {\n  g1_lagrange: string[];\n  g2_monomial: string[];\n  g1_monomial: string[];\n}\n\n// eth-signer\nimport { KZG } from 'micro-eth-signer/kzg';\nconst kzg = new KZG(trustedSetup);\n\n// kzg-wasm\nconst strip0x = items => items.map((i) => i.substring(2)).join('');\nconst g1 = strip0x(trustedSetup.g1_lagrange);\nconst g2 = strip0x(trustedSetup.g2_monomial);\nconst opts = { n1: 4096, n2: 65, g1, g2 };\nconst kzg = await loadKZG(opts);\n\n// c-kzg can't receive object, requires path\nconst __dirname = dirname(fileURLToPath(import.meta.url));\nckzg.loadTrustedSetup(1, __dirname + '/trusted_setup.json');\n\ntrustedSetup.g1_lagrange.slice(0, 2)\n// [\n//   '0xa0413c0dcafec6dbc9f47d66785cf1e8c981044f7d13cfe3e4fcbb71b5408dfde6312493cb3c1d30516cb3ca88c03654',\n//   '0x8b997fb25730d661918371bb41f2a6e899cac23f04fc5365800b75433c0a953250e15e7a98fb5ca5cc56a8cd34c20c57'\n// ]\ntrustedSetup.g2_monomial.slice(0, 2)\n// [\n//   '0x93e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb8',\n//   '0xb5bfd7dd8cdeb128843bc287230af38926187075cbfbefa81009a2ce615ac53d2914e5870cb452d2afaaab24f3499f72185cbfee53492714734429b7b38608e23926c911cceceac9a36851477ba4c60b087041de621000edc98edada20c1def2'\n// ]\n```\n\n## Verification\n\n`npm install && npm run build` will build files from `trusted_setup.txt`, which was copied from\n[c-kzg-4844](https://github.com/ethereum/c-kzg-4844/blob/445387f7dfd95b2b0d74b537b9d28f7b603b6f24/src/trusted_setup.txt).\n\nIts checksum is `d39b9f2d047cc9dca2de58f264b6a09448ccd34db967881a6713eacacf0f26b7`.\n\n## License\n\nMIT License\n\nCopyright (c) 2024 Paul Miller (https://paulmillr.com)\n","readmeFilename":"README.md"}