{"_id":"@bearnetwork/bnes-pqc-snap","_rev":"3-979649deccd3e5f461cb6bb300b53b9d","name":"@bearnetwork/bnes-pqc-snap","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.0":{"name":"@bearnetwork/bnes-pqc-snap","version":"0.1.0","license":"Apache-2.0","_id":"@bearnetwork/bnes-pqc-snap@0.1.0","maintainers":[{"name":"bearnetwork","email":"bnkt@bearnetwork.net"}],"homepage":"https://github.com/BearNetwork-BRNKC/bnes-pqc-snap#readme","bugs":{"url":"https://github.com/BearNetwork-BRNKC/bnes-pqc-snap/issues"},"dist":{"shasum":"e669b95d60f561d29274c49aafbbb0626e4ab886","tarball":"https://registry.npmjs.org/@bearnetwork/bnes-pqc-snap/-/bnes-pqc-snap-0.1.0.tgz","fileCount":8,"integrity":"sha512-p/yplCVNZk+UirH+HiDlvKbW/WcvsRJrNKB8eHq2rOnuJ5j2fmZCbukLyqSOXzxL7HXTH6ZR0jsAfohCNswABQ==","signatures":[{"sig":"MEUCIAaEVYItORnrZRoW7oaYkOlznQebpiTpfcqwR1MaQ//KAiEAzPtaCfvmcr3Nh1rBxR+xLoE2OtncjRagW2qNUOLyQsM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bearnetwork%2fbnes-pqc-snap@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":609823},"main":"dist/bundle.cjs","type":"module","engines":{"node":">=22"},"gitHead":"d67d5b3d79c707beee91ee334759757c6e7a8098","private":false,"scripts":{"sbom":"npm sbom --sbom-format cyclonedx --omit dev > dist/sbom.cdx.json","test":"vitest run","build":"npm run build:wasm && esbuild src/index.ts --bundle --platform=browser --target=es2022 --format=cjs --loader:.wasm=binary --outfile=dist/bundle.cjs && node scripts/update-manifest.mjs","check":"npm run build && tsc --noEmit && npm run test","integrity":"node scripts/write-integrity.mjs","build:wasm":"node scripts/build-wasm.mjs","test:watch":"vitest","pack:dry-run":"npm pack --dry-run"},"_npmUser":{"name":"bearnetwork","email":"bnkt@bearnetwork.net"},"repository":{"url":"git+https://github.com/BearNetwork-BRNKC/bnes-pqc-snap.git","type":"git"},"_npmVersion":"11.17.0","description":"BearNetworkChain ML-DSA-87 quantum transaction Snap","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@noble/hashes":"^2.0.1","@metamask/snaps-sdk":"^12.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0","esbuild":"^0.25.0","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/bnes-pqc-snap_0.1.0_1786858079873_0.6617243408733668","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@bearnetwork/bnes-pqc-snap","version":"0.1.1","license":"Apache-2.0","_id":"@bearnetwork/bnes-pqc-snap@0.1.1","maintainers":[{"name":"bearnetwork","email":"bnkt@bearnetwork.net"}],"homepage":"https://github.com/BearNetwork-BRNKC/bnes-pqc-snap#readme","bugs":{"url":"https://github.com/BearNetwork-BRNKC/bnes-pqc-snap/issues"},"dist":{"shasum":"31e86081eb75e84624deee210e4736bf187fb852","tarball":"https://registry.npmjs.org/@bearnetwork/bnes-pqc-snap/-/bnes-pqc-snap-0.1.1.tgz","fileCount":9,"integrity":"sha512-JAum8rCSd/IKAlVZLg3zbvJ8qkuyt4C5Zk6dwvD56Z053dmMk95rlsl/mNZcJaR/01NZos1mO/qBI/JOaKptiQ==","signatures":[{"sig":"MEUCIQCghviEQ6bWen01UaTbhqMI9aWgyPNyCy2DWiy9Ctsr0AIgMJ3IbYNH5XNCxFMNNW7KND/Zq5Dt36QJFtbdAvRB22E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bearnetwork%2fbnes-pqc-snap@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":924417},"main":"dist/bundle.cjs","type":"module","engines":{"node":">=22"},"gitHead":"f679e5ce67a954cad24c26acc3f3d3e711bb09a0","private":false,"scripts":{"sbom":"npm sbom --sbom-format cyclonedx --omit dev > dist/sbom.cdx.json","test":"vitest run","build":"npm run build:wasm && esbuild src/index.ts --bundle --platform=browser --target=es2022 --format=cjs --loader:.wasm=binary --outfile=dist/bundle.cjs && node scripts/update-manifest.mjs && node scripts/write-preinstalled-manifest.mjs","check":"npm run build && tsc --noEmit && npm run test","integrity":"node scripts/write-integrity.mjs","build:wasm":"node scripts/build-wasm.mjs","test:watch":"vitest","pack:dry-run":"npm pack --dry-run"},"_npmUser":{"name":"bearnetwork","email":"bnkt@bearnetwork.net"},"repository":{"url":"git+https://github.com/BearNetwork-BRNKC/bnes-pqc-snap.git","type":"git"},"_npmVersion":"11.17.0","description":"BearNetworkChain ML-DSA-87 quantum transaction Snap","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@noble/hashes":"^2.0.1","@metamask/snaps-sdk":"^12.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0","esbuild":"^0.25.0","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/bnes-pqc-snap_0.1.1_1786859362781_0.6652275162026953","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@bearnetwork/bnes-pqc-snap","version":"0.1.2","description":"BearNetworkChain ML-DSA-87 quantum transaction Snap","license":"Apache-2.0","private":false,"type":"module","main":"dist/bundle.cjs","scripts":{"build:wasm":"node scripts/build-wasm.mjs","build":"npm run build:wasm && esbuild src/index.ts --bundle --platform=browser --target=es2022 --format=cjs --loader:.wasm=binary --outfile=dist/bundle.cjs && node scripts/update-manifest.mjs && node scripts/write-preinstalled-manifest.mjs","test":"vitest run","test:watch":"vitest","check":"npm run build && tsc --noEmit && npm run test","pack:dry-run":"npm pack --dry-run","sbom":"npm sbom --sbom-format cyclonedx --omit dev > dist/sbom.cdx.json","integrity":"node scripts/write-integrity.mjs"},"repository":{"type":"git","url":"git+https://github.com/BearNetwork-BRNKC/bnes-pqc-snap.git"},"bugs":{"url":"https://github.com/BearNetwork-BRNKC/bnes-pqc-snap/issues"},"homepage":"https://github.com/BearNetwork-BRNKC/bnes-pqc-snap#readme","publishConfig":{"access":"public"},"dependencies":{"@metamask/snaps-sdk":"^12.0.0","@noble/hashes":"^2.0.1"},"devDependencies":{"@types/node":"^24.0.0","esbuild":"^0.25.0","typescript":"^5.8.0","vitest":"^3.0.0"},"engines":{"node":">=22"},"gitHead":"ec1f36d36f78bd29f438f4316155a3def226ad6e","_id":"@bearnetwork/bnes-pqc-snap@0.1.2","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-WKaAVIWhez3pqqeS0nfSaKcjimnP3UYmnHYlEHL8fLM5qLnv/T+ayMtJMkLu4rEzLKCHDp6IZfL8akmxvAtK8w==","shasum":"93af9bc2df74ba7b9ae2f8c1f475dff440093610","tarball":"https://registry.npmjs.org/@bearnetwork/bnes-pqc-snap/-/bnes-pqc-snap-0.1.2.tgz","fileCount":9,"unpackedSize":924417,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bearnetwork%2fbnes-pqc-snap@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGFgZiINMLRFCTrVSKr2JBSH+wUA96vNpPx1FEcXQwFTAiB7rW0sV7lebxVk9GlscFYihGCksOTKKCpsgKV5Po6iKg=="}]},"_npmUser":{"name":"bearnetwork","email":"bnkt@bearnetwork.net"},"directories":{},"maintainers":[{"name":"bearnetwork","email":"bnkt@bearnetwork.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/bnes-pqc-snap_0.1.2_1786879688172_0.26238537287451824"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-16T05:27:59.710Z","modified":"2026-08-16T11:28:08.646Z","0.1.0":"2026-08-16T05:28:00.033Z","0.1.1":"2026-08-16T05:49:22.921Z","0.1.2":"2026-08-16T11:28:08.347Z"},"bugs":{"url":"https://github.com/BearNetwork-BRNKC/bnes-pqc-snap/issues"},"license":"Apache-2.0","homepage":"https://github.com/BearNetwork-BRNKC/bnes-pqc-snap#readme","repository":{"type":"git","url":"git+https://github.com/BearNetwork-BRNKC/bnes-pqc-snap.git"},"description":"BearNetworkChain ML-DSA-87 quantum transaction Snap","maintainers":[{"name":"bearnetwork","email":"bnkt@bearnetwork.net"}],"readme":"# @bearnetwork/bnes-pqc-snap\n\nBearNetworkChain 主網（Chain ID `641230`）專用的 MetaMask Snap。它從既有錢包的\n`snap_getEntropy` 值，以 HKDF-SHA-512 決定性衍生一把 ML-DSA-87\n`BNES_WALLET_QTX_V1` 身分金鑰，並簽署 BNES `0x04` Quantum Envelope 的\n`PQCSigningHash()`。\n\n這是獨立套件；它不修改 MetaMask upstream 核心邏輯，亦不保存、匯出或回傳 seed / 私鑰。\n\n## 凍結的 v1 規格\n\n- Snap ID：`npm:@bearnetwork/bnes-pqc-snap`\n- 網路：BearNetworkChain mainnet，Chain ID `641230` (`0x9c8ce`)\n- 熵來源：`snap_getEntropy`，version `1`，salt `BNES_WALLET_QTX_V1`\n- 衍生：HKDF-SHA-512，輸出固定 32 bytes，餵入 FIPS 204 ML-DSA-87 seed key generation\n- HKDF salt：`SHA-512(\"BNES:WALLET-PQC:HKDF-SALT:v1\")`\n- HKDF info：`\"BNES:WALLET-PQC:ML-DSA-87:v1\" || 00 || \"BNES_WALLET_QTX_V1\" || 00 || U64BE(641230) || \"npm:@bearnetwork/bnes-pqc-snap\" || 01`\n- 公鑰：2592-byte ML-DSA-87 serialized public key\n- 簽章：4627-byte raw ML-DSA-87 signature，context 為空\n- 交易雜湊：Keccak-256(RLP(`[chainId, nonce, gasPrice, gas, to, value, data, accessList]`))，與 BNES Node `PQCSigningHash()` 相同\n\n固定 HKDF 向量（`00..1f` 的 32-byte entropy）會衍生：\n\n`9f48a59eee7a59c00aeeff6c7aef2aafc06e929bc59a20ad10a53d23b334e09f`\n\n## RPC\n\n僅允許明確列入 allowlist 的 HTTPS origins：`https://bearnetwork.net`、\n`https://www.bearnetwork.net`、`https://wallet.bearnetwork.net`，以及\n`brnkc-mainnet`、`brnkc-mainnet1`、`rpc-ci`、`rpc-ci1`、`bnes-mainnet`、\n`bnes-mainnet1` 六個 `bearnetwork.net` RPC 主機，並接受 `https://*.bearnetwork.net`\n與未來 BNS 自訂協定的 `bnes://*.bnes`。比對會要求協定與完整網域邊界。\n每次簽署均須在 Snap 對話框確認主網、收款地址、金額、nonce 與 canonical PQC hash。\n\n- `bnes_getPqcPublicKey`\n- `bnes_getPqcStatus`\n- `bnes_signQuantumTransaction`\n\nSnap state 僅含 `publicKey`、`derivationVersion` 與 `initializedAt`；衍生 seed 和私鑰\n只存在於短暫記憶體，使用完畢即清除。\n\n## 開發與驗證\n\n先安裝 Rust `wasm32-unknown-unknown` target，再執行：\n\n```sh\nnpm ci\nnpm run check\nnpm run sbom\nnpm run integrity\nnpm pack --dry-run\n```\n\n`npm run check` 會以乾淨建置重新產生 WASM、Snap manifest hash，並測試 HKDF 還原、\nML-DSA-87 簽署/驗證、竄改拒絕、非主網拒絕、未授權來源與私密資料不落入 Snap state。\n\n## 發布\n\nGitHub Actions 使用 npm trusted publishing（OIDC）執行 `npm publish --provenance`。\n在 npm 套件設定中，將 trusted publisher 綁定至本儲存庫與 `release.yml`；不需要 npm\naccess token。只有 `v*` tag 才會執行發布。\n\n## 授權\n\nApache-2.0；見 [LICENSE](LICENSE)。\n","readmeFilename":"README.md"}