{"_id":"nostr-claw-bootstrap","_rev":"51-a8bbaa00f187c72c9d389e8db468ee90","name":"nostr-claw-bootstrap","dist-tags":{"a":"2026.6.10-a","b":"2026.6.10-b","latest":"2026.7.19"},"versions":{"2026.4.15":{"name":"nostr-claw-bootstrap","version":"2026.4.15","_id":"nostr-claw-bootstrap@2026.4.15","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"bin/nostr-claw-bootstrap.js"},"dist":{"shasum":"c91d6628ba67825e57548ae81b6a1b62ebb7be3e","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.4.15.tgz","fileCount":3,"integrity":"sha512-sapbk5sdfOmlrItpevUfPUhedhm7hd3Z0fdrKa9mzH5g0jupEbcFlMyx2PRN02lIvzpXdzTSQZLnjLrO5FqERQ==","signatures":[{"sig":"MEYCIQDx6jao4Syynp1evuMjPBGQgeBk1PoAv3qaKcdihLGr2wIhAMhyKfw11/PMXTV7FuOXXiDI/2XfbD7Bf90F7xOnjyxp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3057},"type":"module","gitHead":"32315665c3cd3aeec9a647772cf474eccd8e5814","_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"_npmVersion":"11.12.1","description":"Literal npx bootstrap wrapper for the @openclaw/nostr managed override installer","directories":{},"_nodeVersion":"25.9.0","dependencies":{"@openclaw/nostr":"2026.4.15"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.4.15_1778263279763_0.9057297222015717","host":"s3://npm-registry-packages-npm-production"}},"2026.4.16":{"name":"nostr-claw-bootstrap","version":"2026.4.16","_id":"nostr-claw-bootstrap@2026.4.16","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"da89b2d73575c695fea3d9b6b4f638d873047018","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.4.16.tgz","fileCount":47,"integrity":"sha512-oQ6vpq7Ut6olNX9Oi+0Q6NVpXpIvZroiENQ6fMBSgm+FLCRTwXIIss5FS+z7vJOPUMhmEPGpqFczaZvecifeog==","signatures":[{"sig":"MEQCIHCERIwpyv1OAmRb/xefzxB3jMhio+EMoYkObc9RvHWfAiBAOdLzBloI2hbxwqg9wBPmi3NHizn18zIFzci0HjAL7g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":461250},"type":"module","gitHead":"c9c078c3b8184011854077da03ec6ac16cfd8ca9","scripts":{"test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":">=2026.4.15"},"peerDependencies":{"openclaw":">=2026.4.15"},"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.4.16_1778264248331_0.6522690189243519","host":"s3://npm-registry-packages-npm-production"}},"2026.4.17":{"name":"nostr-claw-bootstrap","version":"2026.4.17","_id":"nostr-claw-bootstrap@2026.4.17","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"b431b83215fbe31b3b2ac58ef4b15cf0dc33c7ac","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.4.17.tgz","fileCount":47,"integrity":"sha512-3GC9xbu9ZpUTHdPQ4CREN+0Zu84r5a9urIT02StdnKn+91yZhU4AeWVo4sWH918azBs6gF3O1h1Ud8VjJYjPsA==","signatures":[{"sig":"MEUCIQCiZrR+ZvcDQKF4bHEkWqd90R4GhaE/oU6O6Ro4CsjMIAIgMwxwETraMDhjmu+eaelGM67Asht11h4uKhVvceQxzMs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":465814},"type":"module","gitHead":"bacb899f5f65de5797d8b03e5fb4c24b7dc34455","scripts":{"test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeExtensions":["./index.ts"],"runtimeSetupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":">=2026.4.15"},"peerDependencies":{"openclaw":">=2026.4.15"},"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.4.17_1778265045835_0.15650183794668648","host":"s3://npm-registry-packages-npm-production"}},"2026.4.18":{"name":"nostr-claw-bootstrap","version":"2026.4.18","_id":"nostr-claw-bootstrap@2026.4.18","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"ae568455a2706f915dd6e3e6a4778a71a0be09d3","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.4.18.tgz","fileCount":46,"integrity":"sha512-7jQPcQV7wpWbjlgB1G9s438de5POSTzwoS2qRaICqJN5LB4ImFnKRbVtNVyOtm/dm5ZKzFJNU0sY1NkpgCzIlg==","signatures":[{"sig":"MEYCIQDn/UQ0IUfHcDoIP1DeGLvBbqhL5QEzLUSitOzrIdgzrQIhAM5Xv6dnn5krkPBjF3t05+6cjxG2pLJThoWyyONZhoUL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":469148},"type":"module","gitHead":"ebaaf51da08b5d9cb65520d39b977c9532a4b124","scripts":{"test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeExtensions":["./index.ts"],"runtimeSetupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":">=2026.4.15"},"peerDependencies":{"openclaw":">=2026.4.15"},"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.4.18_1778267382059_0.3209870803704744","host":"s3://npm-registry-packages-npm-production"}},"2026.5.9":{"name":"nostr-claw-bootstrap","version":"2026.5.9","_id":"nostr-claw-bootstrap@2026.5.9","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"d136ec2512823ea5228b261aa71dde86ffccc892","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.5.9.tgz","fileCount":46,"integrity":"sha512-pq0+yc/XHZ8tr0qJRdUP+VuwKF8e5UeCNPhJqayZOVxh1q04DMglTi+5bioOU9+ezfo+0epdPI0lCCmXqzzfYA==","signatures":[{"sig":"MEQCIFJ154/IYV0UYJrwnvl2exF37/Su/Jp+15xSKh7AY5EnAiB7eWuWW/oAHipVd77uNIvPF/vf80IMs5VfDwiAK0zG3g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":472762},"type":"module","gitHead":"9b96b665d7420777bf5d21f3ab63a345d0efa425","scripts":{"test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeExtensions":["./index.ts"],"runtimeSetupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":">=2026.4.15"},"peerDependencies":{"openclaw":">=2026.4.15"},"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.5.9_1778268568180_0.2906512347671746","host":"s3://npm-registry-packages-npm-production"}},"2026.5.10":{"name":"nostr-claw-bootstrap","version":"2026.5.10","_id":"nostr-claw-bootstrap@2026.5.10","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"4b1bfcb6287e01d9dddb12a384e95c5b94925470","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.5.10.tgz","fileCount":46,"integrity":"sha512-QsfVNljSf/29Doic3NyBi8JiF17VcX1xk2XhzvNtgIOGjy58Gm92LH4gELgys0cFkYTXaFWjU1WW+AHK7Kg++A==","signatures":[{"sig":"MEUCIQDEqVKHroZFPTRGMkF7dlw4IQmwcccmXcRF+od4EOWu2gIgYv8yJFUhVwxytmurnuA9lZ++4XLDOQTxepwCiK8AFms=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":474500},"type":"module","gitHead":"a6ae6a6820ca7aeb04321c53b09e2835409f45c9","scripts":{"test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeExtensions":["./index.ts"],"runtimeSetupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":">=2026.4.15"},"peerDependencies":{"openclaw":">=2026.4.15"},"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.5.10_1778270133008_0.13760914386659562","host":"s3://npm-registry-packages-npm-production"}},"2026.5.12":{"name":"nostr-claw-bootstrap","version":"2026.5.12","_id":"nostr-claw-bootstrap@2026.5.12","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"3a60015fb2b89c6cbd75894c06ca3d65ca79a03c","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.5.12.tgz","fileCount":46,"integrity":"sha512-EU9w9KPuDRqREMAFs+AWKcNtusGF2MDZzHWnFoXtS2G//sPxBthP0OFwK5jVehFu2h+u/2t7CnLcdl3ZH4ZRLg==","signatures":[{"sig":"MEUCIQD6XIY7uDEAD5D2RtMBX9G31Rn9x/TzjhFmVm1cwb/ipwIgIazjSGvx0N3V49sHDRdJRhUgAzlxPxsfgTfIiJjAqu8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":477861},"type":"module","gitHead":"e6041445613b8744be3c09483b035876f983af17","scripts":{"test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeExtensions":["./index.ts"],"runtimeSetupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":">=2026.4.15"},"peerDependencies":{"openclaw":">=2026.4.15"},"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.5.12_1778270978667_0.5906628768568734","host":"s3://npm-registry-packages-npm-production"}},"2026.5.16":{"name":"nostr-claw-bootstrap","version":"2026.5.16","_id":"nostr-claw-bootstrap@2026.5.16","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"c0190c719e0d758097f855ee8ac184fdf9077e30","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.5.16.tgz","fileCount":46,"integrity":"sha512-6y5X+OVDnfpagSoXBHrEKWw/nj9kwDughjQ9ABBSHnoEu0aAziaywR+paV/wM/DTcqHIx2G2leH1WhIfXzf6ug==","signatures":[{"sig":"MEQCIEFZG/I7/L8iGBh9A6cqjUUyT9Xj7S780yhoovcKfn9JAiBNnENDATAdiBkOFSq+UqYmBDjQaVPit6JBSWA/zZsGCw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":490529},"type":"module","gitHead":"16ab8237bd26e201569824552224822292cb8e7d","scripts":{"test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeExtensions":["./index.ts"],"runtimeSetupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":">=2026.4.15"},"peerDependencies":{"openclaw":">=2026.4.15"},"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.5.16_1778274677701_0.7242769875349182","host":"s3://npm-registry-packages-npm-production"}},"2026.5.17":{"name":"nostr-claw-bootstrap","version":"2026.5.17","_id":"nostr-claw-bootstrap@2026.5.17","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"af31d97fb45615884e5fb7d755210062d63f34e0","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.5.17.tgz","fileCount":46,"integrity":"sha512-+4TScsY1eU3vLQuZ8+WJFwgdGB/PhPZMjsZodlRL3KmCN8QmNXc89/sJK+gwkPsE1dMQ97p2vP12xogDYnXLGQ==","signatures":[{"sig":"MEUCIQC7QbyMkebQsNDfyPp3H5kTfoDjyhn1HM6J6ae3wrBtuwIgHzE5rxCYQeTwiaxZDMFIn5DU2rZ+hcAe0IrNpD58EzI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":494530},"type":"module","gitHead":"34d13878d2e8e291232652a59d7b541d9b58360f","scripts":{"test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeExtensions":["./index.ts"],"runtimeSetupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":">=2026.4.15"},"peerDependencies":{"openclaw":">=2026.4.15"},"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.5.17_1778542955153_0.7720777083928883","host":"s3://npm-registry-packages-npm-production"}},"2026.5.18":{"name":"nostr-claw-bootstrap","version":"2026.5.18","_id":"nostr-claw-bootstrap@2026.5.18","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"15f798436739b5e2802b22d5f24c4040602df36b","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.5.18.tgz","fileCount":46,"integrity":"sha512-QTAV7NgkKo/P8hKhXVCY/R/x9vVP+FlivyYcYFSmuiZlNnaevmjE7/TJInQeO7mk6guZdIgIfJ9NMMvTN7YnTQ==","signatures":[{"sig":"MEQCIBHzGykWG2Gaz1mYmSWmj8Zy9EsfGmlRumlXv68x3JTTAiAmfIlVufEK3+oicQS9MJQa8qTMQ2CWD31xW7k4QDLvBQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":506497},"type":"module","gitHead":"594d8bfed8656976e70c39fe7fc7e2e7ca5f3c6d","scripts":{"test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeExtensions":["./index.ts"],"runtimeSetupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":">=2026.4.15"},"peerDependencies":{"openclaw":">=2026.4.15"},"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.5.18_1778578153701_0.8300075090338577","host":"s3://npm-registry-packages-npm-production"}},"2026.5.19":{"name":"nostr-claw-bootstrap","version":"2026.5.19","_id":"nostr-claw-bootstrap@2026.5.19","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"cf1132e60bb1d5972c9e013d76b0e2434030d0aa","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.5.19.tgz","fileCount":46,"integrity":"sha512-BXF2UasN5vYWQBkO7YjqwD+7Hr1O6jNRoAHJ5PPXGXZY8vgOKuwwRQEi76KRMpuDMD7dzgnEW1ZTp/WpcHV4wQ==","signatures":[{"sig":"MEQCIGAktroG0txwxSCdDF+dsJMjrQCkLUN9wQ1yrp4SBkxdAiBMBynEawxiJZS81o49lJvmN9pYNg8SEUaBb8tx428KdA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":508643},"type":"module","gitHead":"5294600c766b71b50101fedbf21c74b1161d2070","scripts":{"test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeExtensions":["./index.ts"],"runtimeSetupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":">=2026.4.15"},"peerDependencies":{"openclaw":">=2026.4.15"},"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.5.19_1778687021031_0.7308567563019279","host":"s3://npm-registry-packages-npm-production"}},"2026.5.20":{"name":"nostr-claw-bootstrap","version":"2026.5.20","_id":"nostr-claw-bootstrap@2026.5.20","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"939b3bd608c67edd522dfd88a1c2608f4acaf1e0","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.5.20.tgz","fileCount":46,"integrity":"sha512-MFFyerEBoXDD5nmJPR6KaS0yBl0MaARJU4Wb1ClIRyEYwOGfNTpIpIfNazuYUxr/bWjUt8IbpFvEo5/61Q/Wzg==","signatures":[{"sig":"MEYCIQCxXR5L7XZxbWmHH1o1COk72hcF9j0ArLwMacdfQ6YE/QIhAIF70yMs8HfHWuAOGlGSSkvln+kGfQlJT9UNGr2wxmAW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":511903},"type":"module","gitHead":"f372670a6a0ca2d39d99bb8258b4069638eb9f60","scripts":{"test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeExtensions":["./index.ts"],"runtimeSetupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":">=2026.4.15"},"peerDependencies":{"openclaw":">=2026.4.15"},"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.5.20_1778783431418_0.6169332250955306","host":"s3://npm-registry-packages-npm-production"}},"2026.5.29":{"name":"nostr-claw-bootstrap","version":"2026.5.29","_id":"nostr-claw-bootstrap@2026.5.29","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"c0138cec496967f20c07ba660b747aa243d0ee6b","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.5.29.tgz","fileCount":49,"integrity":"sha512-SkCX1H8EUtq+JvupnJIarDh/u8EFAngXa121kGf37bLA5VTLd+KN6rzGg7Jt4Bd+XeAFqTB1ZpDz7khJawiOow==","signatures":[{"sig":"MEYCIQDYiNlgBLYK4DudBAxUwXIzCo4X9UObJkUYb+skdCxWUgIhAMVhcLSy3worP55gvGgy6yXXOQVel/uIBzJMuq8umEiJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":630945},"type":"module","gitHead":"f359b7b39016f2c1a94fbbe7744f9fa55c2af521","scripts":{"test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeExtensions":["./index.ts"],"runtimeSetupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":">=2026.4.15"},"peerDependencies":{"openclaw":">=2026.4.15"},"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.5.29_1779000582514_0.029472677550539395","host":"s3://npm-registry-packages-npm-production"}},"2026.5.31":{"name":"nostr-claw-bootstrap","version":"2026.5.31","_id":"nostr-claw-bootstrap@2026.5.31","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"0adef6716450e7e728bd62a0c0cde6df664c60a4","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.5.31.tgz","fileCount":49,"integrity":"sha512-pEjlLpbW0HXyKaQKmEMDRQj8sS2X9F/4fKzH1yVj0aaXu5o/iFC97/YbZCbQprfmi3298MaJEtQ+sXySJ0ORLA==","signatures":[{"sig":"MEYCIQCIW3M82bDFKLpo7Ql4xO5HSBKbYfR7IdxCYQ5VjGxjBwIhAOfd4sdiCXj0aFtEzMk9d2uxaPfmWRja9mu9wg0XcZjX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":632648},"type":"module","gitHead":"baef774bab43cf9bd3379efd1c99f09ab88e9387","scripts":{"test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeExtensions":["./index.ts"],"runtimeSetupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":">=2026.4.15"},"peerDependencies":{"openclaw":">=2026.4.15"},"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.5.31_1779001671065_0.9766207303307115","host":"s3://npm-registry-packages-npm-production"}},"2026.5.33":{"name":"nostr-claw-bootstrap","version":"2026.5.33","_id":"nostr-claw-bootstrap@2026.5.33","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"2adb0a9cb1ed6d9afc973a8a2b938f792a97a84d","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.5.33.tgz","fileCount":49,"integrity":"sha512-ZNPo342XyxdU0fsqfG6hmlmrUQvBIruh/w/sJCbHz7zxPihKStCGL7OC/GfH8jDv4NdNzT7OwRI/NXVDavLYUw==","signatures":[{"sig":"MEUCIA3wf8ljDoOR98LTuKJEZwkd3Fog4LDSv7vckQM3hL9sAiEA9bpqmJiUyo8XhM+d4e7cBTQJqebJlkLrXoAXtQuW3k4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":633230},"type":"module","gitHead":"092ae1898099ce71b0f254f8426522c77296ddcf","scripts":{"test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeExtensions":["./index.ts"],"runtimeSetupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":">=2026.4.15"},"peerDependencies":{"openclaw":">=2026.4.15"},"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.5.33_1779004730109_0.36287841959051437","host":"s3://npm-registry-packages-npm-production"}},"2026.5.34":{"name":"nostr-claw-bootstrap","version":"2026.5.34","_id":"nostr-claw-bootstrap@2026.5.34","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"98956ff677c5269b2c2bc01601ab39a0a29ffbe9","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.5.34.tgz","fileCount":49,"integrity":"sha512-LNsYgaW7IggWlEveqK9stI+RZOjHWdEl0GIKfFk84CXKTFKjFK0wtxohfs1EgxkWtTb9GQe1Mwn9xlvvLZ+1gQ==","signatures":[{"sig":"MEYCIQDfiozpgZXeaPKJ48pPYztUfzdO9BGvYs1qCHh5AFaMNQIhANktmXnWxYlLsHv3oG5vnobtv5sHc+YGuxSDoWihoc8J","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":633589},"type":"module","gitHead":"60b4eda3184be5961c8db75c48c95c9e1c070d6a","scripts":{"test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeExtensions":["./index.ts"],"runtimeSetupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":">=2026.4.15"},"peerDependencies":{"openclaw":">=2026.4.15"},"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.5.34_1779006363109_0.5613434699707585","host":"s3://npm-registry-packages-npm-production"}},"2026.5.35":{"name":"nostr-claw-bootstrap","version":"2026.5.35","_id":"nostr-claw-bootstrap@2026.5.35","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"fc19aacf086d00ddc1769b61810e1cc26d9e806e","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.5.35.tgz","fileCount":49,"integrity":"sha512-1Ilh088AXJ0YOC5xhaiDQiNNzpNciARG7ePGlQj0CMVtYFHR+8+H34XGKgebe6Sk+cf797qnuqjGrtWkfYPpAw==","signatures":[{"sig":"MEUCIQCo7choLXqIspwysmnaWUJAvpbm+iEAOcGvRcOr/69LMwIgRk5oZG1GfvnIp0uhC49FBWKjf1/wlRlt22o1V7HXt/4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":633987},"type":"module","gitHead":"31f096b630220f4b2fb7d12f844a579746392a10","scripts":{"test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeExtensions":["./index.ts"],"runtimeSetupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":">=2026.4.15"},"peerDependencies":{"openclaw":">=2026.4.15"},"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.5.35_1779008365961_0.8355207657334525","host":"s3://npm-registry-packages-npm-production"}},"2026.5.36":{"name":"nostr-claw-bootstrap","version":"2026.5.36","_id":"nostr-claw-bootstrap@2026.5.36","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"0394f53f61c7a2812360fb8448f508852c5730e5","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.5.36.tgz","fileCount":49,"integrity":"sha512-7IO5s6w7S7pmV4oB63iGkGJziGFrMXWGwm8J+Zx1YzdRe7tbC/3SY9+BxVb9PXk5yCWT9QwlZJWH/23nzw0ySQ==","signatures":[{"sig":"MEUCIQDv+MCtVhjYgF2JFmXAWzXgnaaYdFAG8c8fPHZO6ZtJ7wIgEk9QrjG9Tm/1gRWqQsPG5OvPjvPKoeYtelOQajPEF58=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":629030},"type":"module","gitHead":"5cdaacb45fef5495db52b1e7b87830c9960700ff","scripts":{"test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeExtensions":["./index.ts"],"runtimeSetupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":">=2026.4.15"},"peerDependencies":{"openclaw":">=2026.4.15"},"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.5.36_1779028877820_0.8718020534037207","host":"s3://npm-registry-packages-npm-production"}},"2026.5.37":{"name":"nostr-claw-bootstrap","version":"2026.5.37","_id":"nostr-claw-bootstrap@2026.5.37","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"dd8f90f32973f0e26dbbae989eb00abbfd1a11b8","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.5.37.tgz","fileCount":49,"integrity":"sha512-fjpGGpDxLNG9K7aXlCofvlgllyyw9pXgIuhJZybbdcbT9ID/+k3poJYFXLOmWbqvGPnlzDteb+czeHDQuqdnMA==","signatures":[{"sig":"MEUCIDfZiE+l4tE2wN1U1WxLToFyl/c1xi0h/iCj69KGPzRfAiEAyRHdNY/ArvlpveU8+o4GVby+nnGyqHKVCqNnR/ebj8U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":630769},"type":"module","gitHead":"0472fda91ee2ed33ee771b13dec109ce6f69b326","scripts":{"test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeExtensions":["./index.ts"],"runtimeSetupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":">=2026.4.15"},"peerDependencies":{"openclaw":">=2026.4.15"},"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.5.37_1779029901991_0.6860210912944364","host":"s3://npm-registry-packages-npm-production"}},"2026.5.38":{"name":"nostr-claw-bootstrap","version":"2026.5.38","_id":"nostr-claw-bootstrap@2026.5.38","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"ee3122731bcd43c8b07708849a67b91e4fcfa0de","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.5.38.tgz","fileCount":49,"integrity":"sha512-l8aXeUYXs6eTttbHAJjRXHvrFdoAlXAgEbOyzvl3IgjvM7Vk5LXZo3z+wTpptAoMosvk28GVaq13+VyxuKmPzQ==","signatures":[{"sig":"MEUCIQDx3l0dPBql2NUWRWGzWz/7pfyT0xFM+ydLzDrifsV5ZwIgcCdsW7lnEP8kHzmPJySDAvJmL+txewa6rokbMZx03BE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":624124},"type":"module","gitHead":"f89f81c2f87c82147f364464bc69e70ded78a9d7","scripts":{"test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeExtensions":["./index.ts"],"runtimeSetupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":">=2026.4.15"},"peerDependencies":{"openclaw":">=2026.4.15"},"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.5.38_1779033690312_0.35777540689574594","host":"s3://npm-registry-packages-npm-production"}},"2026.5.39":{"name":"nostr-claw-bootstrap","version":"2026.5.39","_id":"nostr-claw-bootstrap@2026.5.39","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"cb25c97c223f5aeb24d2d7c9c35079c0c88698d3","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.5.39.tgz","fileCount":49,"integrity":"sha512-YIDpx1GGT6FHuADUYGYyqVDWSV7Zl4Xg5vsAWG+PoF1OTK7YbUFzRyn0YifEHa3KzL5nLRQ+qu40A7y0nW9aUA==","signatures":[{"sig":"MEUCIQCIEmN+BO28nZbDTkkI3IKXXh2tqjiF4HOUZYNlUVEJnwIgWXctjNi6/CYeOe/ywqrkNFj7li3rwectcgZA6i9jPpE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":624333},"type":"module","gitHead":"5697e21049257e324f917a9c137bb5972ef44a78","scripts":{"test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeExtensions":["./index.ts"],"runtimeSetupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":">=2026.4.15"},"peerDependencies":{"openclaw":">=2026.4.15"},"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.5.39_1779034241275_0.004053548244265404","host":"s3://npm-registry-packages-npm-production"}},"2026.5.41":{"name":"nostr-claw-bootstrap","version":"2026.5.41","_id":"nostr-claw-bootstrap@2026.5.41","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"b360e86e9c8ea70674c9ed90e82006480d01f028","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.5.41.tgz","fileCount":52,"integrity":"sha512-AdeUJ3gkv574ZMR4k3LWUgpdCY3+o9yPyn2zHruRrTejmLJcMC/Sge/2k+t+2jPwAHR6I9sWZyfbb+ncgHrHgw==","signatures":[{"sig":"MEUCIQC/+LKutOcHe79+pinPLPAzEnDb49afNeeMjhZWr4ZxfgIgdzd69lye4Gp5/9odYGi2h4XQBzbe0+OHy7qZ0Urel9s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":631710},"type":"module","gitHead":"f572ac9cca6205e3c79487341547f93599d74035","scripts":{"test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeExtensions":["./index.ts"],"runtimeSetupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":">=2026.4.15"},"peerDependencies":{"openclaw":">=2026.4.15"},"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.5.41_1779037262962_0.13907234265684365","host":"s3://npm-registry-packages-npm-production"}},"2026.5.43":{"name":"nostr-claw-bootstrap","version":"2026.5.43","_id":"nostr-claw-bootstrap@2026.5.43","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"5c5901e15d74ebc46289da2bc50719c4f0aa86e4","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.5.43.tgz","fileCount":52,"integrity":"sha512-4EOKbFwGCkhqug16sTV9vjJjGYc+9lhedInQFKHpHWrP1jkCwTLU4PE+v3SaAgMSctBlABwR5hgCUpEhMeL+Vw==","signatures":[{"sig":"MEYCIQCOBpWMm5f8dbic/arvDyLiJwFy70VxbCpbni4lkqjyMwIhAI7cyDx3t12CkvsQQ1HKggtyyPHapJ+t9Oat7/tOM/0f","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":634056},"type":"module","gitHead":"9b3cde36aa277cc0803fbc933fdf4452f7119df3","scripts":{"test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeExtensions":["./index.ts"],"runtimeSetupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":">=2026.4.15"},"peerDependencies":{"openclaw":">=2026.4.15"},"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.5.43_1779046527674_0.8055727356987579","host":"s3://npm-registry-packages-npm-production"}},"2026.5.44":{"name":"nostr-claw-bootstrap","version":"2026.5.44","_id":"nostr-claw-bootstrap@2026.5.44","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"d5223ae17e4f5ca7dc7dc26a9facf44a58206aeb","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.5.44.tgz","fileCount":52,"integrity":"sha512-xiZp0+t3nR31kK62DAuGIGFvYrJzTcj5V2qFQlc32R5/Ui8x8q6hlMo8moZTPP4DPQBX8CKkv8OI8rVjrS8qzA==","signatures":[{"sig":"MEUCIGcIrXyE+Ju+FIk2k/GHp/HahEUlV5/HFZ1/UecsTg21AiEAoGjoATjYV3xGh680/GK4h9QAG+in0dGtIkNsLcIgG+E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":634160},"type":"module","gitHead":"6f3e90872f847c70dd1ffa47e80b8dd432f31987","scripts":{"test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeExtensions":["./index.ts"],"runtimeSetupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":">=2026.4.15"},"peerDependencies":{"openclaw":">=2026.4.15"},"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.5.44_1779048022324_0.6967959694431245","host":"s3://npm-registry-packages-npm-production"}},"2026.5.45":{"name":"nostr-claw-bootstrap","version":"2026.5.45","_id":"nostr-claw-bootstrap@2026.5.45","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"59410aedf1f964484f7b8d0416dbb098ec4a5624","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.5.45.tgz","fileCount":52,"integrity":"sha512-PeBfsxz1YhWhd0IY5rTGLndACFZvD6A3WWbeK1sfRJQn/V7aJkkFMERuVcwTKyR5bURBEt1+pxH7+qbbWgu++Q==","signatures":[{"sig":"MEYCIQDP876LtauUDaZCXqEq7YwEb6CF+BClNoK6SS9gUrOSYQIhAKXlPaYB+IgsOaDugbfmn6rCvsG4yEdKOefAuuF969Pe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":639718},"type":"module","gitHead":"27b8dd27a254a38647335dc55e0aa7926219f6fd","scripts":{"test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeExtensions":["./index.ts"],"runtimeSetupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":">=2026.4.15"},"peerDependencies":{"openclaw":">=2026.4.15"},"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.5.45_1779058576733_0.16764235568268537","host":"s3://npm-registry-packages-npm-production"}},"2026.5.46":{"name":"nostr-claw-bootstrap","version":"2026.5.46","_id":"nostr-claw-bootstrap@2026.5.46","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"a61dd0289af76eca5013818d7522f62daf03884f","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.5.46.tgz","fileCount":52,"integrity":"sha512-XIV1UsphXegMuXlBVQPwnuC4uqW0vm8hggRUUUW8vgHTZV3LasJqlBbi7rgWxC/Q3AAKILsOVdELSbLbq5udMw==","signatures":[{"sig":"MEQCIEwcYdds2t/g0nwTbVUkQx0lu0z8slD4lLYHth0ZByHfAiA7+nnOtCzoGGemKC2URClLkTg6iEl1OqXRViKgjFbD6w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":643401},"type":"module","gitHead":"234ba02dc60339fc9671bb05f360546a9ce876df","scripts":{"test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeExtensions":["./index.ts"],"runtimeSetupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":">=2026.4.15"},"peerDependencies":{"openclaw":">=2026.4.15"},"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.5.46_1779059621852_0.07050216073760684","host":"s3://npm-registry-packages-npm-production"}},"2026.5.50":{"name":"nostr-claw-bootstrap","version":"2026.5.50","_id":"nostr-claw-bootstrap@2026.5.50","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"6cfbfd43a8d38a670de1fd21a621f03d2abbbf30","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.5.50.tgz","fileCount":52,"integrity":"sha512-Whj/hRSehw4UHDeb7j/0uanNAIzf87mvMOhJeMzlJBjBxxeKruvnt5LD4GgnmDmFhTwS5AW7sm4LNYIgGiHxZQ==","signatures":[{"sig":"MEYCIQD0qKdH4XiG/YJqsHFb3366JOYBBHab/AJryI843uQUoAIhANHcXa/8lOM/0Tig98tPmmKiO8XcEY8GTM6ytymd7VJB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":680324},"type":"module","gitHead":"1fe9f701702b3640db7a8d485db7e01612bf8c84","scripts":{"test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeExtensions":["./index.ts"],"runtimeSetupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":">=2026.4.15"},"peerDependencies":{"openclaw":">=2026.4.15"},"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.5.50_1779145377725_0.9249259081629111","host":"s3://npm-registry-packages-npm-production"}},"2026.5.51":{"name":"nostr-claw-bootstrap","version":"2026.5.51","_id":"nostr-claw-bootstrap@2026.5.51","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"4ee25baee4b54af8f6a1dc40268c883bcf193302","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.5.51.tgz","fileCount":53,"integrity":"sha512-eBmvlWnIsH8JDqdtmrUfhk8cEnXTZVuZAI2sfv7+5A0RTBFQ90fTRpALJx4tvzz7sivssT/efmw4+8W3ulhP/Q==","signatures":[{"sig":"MEQCIQC91nyd3DtTLRYgyQLwTkOQNNURg6kbHSRIrWegw5p6VQIfU1FOnPxtEY2zbNzTC4g4k9lD5HgtD680QGq6YOEWBQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":694208},"type":"module","gitHead":"16f22d6bb0d9b707651d27dcb2042c233e382582","scripts":{"test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeExtensions":["./index.ts"],"runtimeSetupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":">=2026.4.15"},"peerDependencies":{"openclaw":">=2026.4.15"},"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.5.51_1779225475236_0.10394760206170894","host":"s3://npm-registry-packages-npm-production"}},"2026.5.52":{"name":"nostr-claw-bootstrap","version":"2026.5.52","_id":"nostr-claw-bootstrap@2026.5.52","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"6a98329fb81bcf76c9f772021e5614697e6e133d","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.5.52.tgz","fileCount":53,"integrity":"sha512-GSwwR+xON5asQ+wsjDmh7lPVhZVDaO82hWcm/QRmdTiJB1j9cw2ccNIHIYC9LHfTbS6gidkomdZB3E8CtO5DNA==","signatures":[{"sig":"MEUCIFzfoF8sk3gC0/5AwtBQ5GUIeYBpI7s4Z6sfLwwAOQ7HAiEA39CflGch8/YH09zBEqGiju+ct38Y1g2pc9wluJm6zRg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":693558},"type":"module","gitHead":"9ee391342897fcecf636c50e742cbceff8b73e4c","scripts":{"test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeExtensions":["./index.ts"],"runtimeSetupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":">=2026.4.15"},"peerDependencies":{"openclaw":">=2026.4.15"},"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.5.52_1779577792144_0.7777067880461632","host":"s3://npm-registry-packages-npm-production"}},"2026.5.53":{"name":"nostr-claw-bootstrap","version":"2026.5.53","_id":"nostr-claw-bootstrap@2026.5.53","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"a812561a6310969eb0307fc118ecc48b56bcde7a","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.5.53.tgz","fileCount":53,"integrity":"sha512-meHVBSzaHLJ2FnpxJ7H9R4xeT3Nnvyv8CRsKiDbrUOU1V3aO9nx/0/Lb+vO3U6Xa2gnE+zrF1lPb71ygmDMNyA==","signatures":[{"sig":"MEUCIQDSdEejf6yoCRUYvvdr5+viFqTHu9fVaZDhUm/fwb0kkQIgB97Y2UcS7DD/uyIiJzNUG7MsOrYZrZrI+uN8EJt3MB0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":693556},"type":"module","gitHead":"a2188f395249e599a839686d2eadf651c8d9a8b8","scripts":{"test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeExtensions":["./index.ts"],"runtimeSetupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":">=2026.4.15"},"peerDependencies":{"openclaw":">=2026.4.15"},"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.5.53_1779577933237_0.5933651152143073","host":"s3://npm-registry-packages-npm-production"}},"2026.5.54":{"name":"nostr-claw-bootstrap","version":"2026.5.54","_id":"nostr-claw-bootstrap@2026.5.54","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"8f5f0967e0d6b49c582fd2f20cba4f799a10959c","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.5.54.tgz","fileCount":53,"integrity":"sha512-f3cw28ynFn52k2SvbY7j4u+GPAvvjRO2k9t6bCRAapO3FXmZIDNbxroCVz9w3Jci8QZVeb47nolbSF1eB6wkTg==","signatures":[{"sig":"MEUCIQCd3yn878taGLfZSXP3Qqu9vqUdwkSqY3LOt+Si15g5SQIgImFr+SpMNUpMKVBUPNlv3nxERqpYOEiowCQVXw2ptwM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":694585},"type":"module","gitHead":"0e8f77aace48394fb8836bc9c62819d2aaeef380","scripts":{"test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeExtensions":["./index.ts"],"runtimeSetupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":">=2026.4.15"},"peerDependencies":{"openclaw":">=2026.4.15"},"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.5.54_1779578282212_0.5586420632333091","host":"s3://npm-registry-packages-npm-production"}},"2026.5.56":{"name":"nostr-claw-bootstrap","version":"2026.5.56","_id":"nostr-claw-bootstrap@2026.5.56","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"a12cbd08fdf4a3617082c3944f6194a58d19471a","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.5.56.tgz","fileCount":53,"integrity":"sha512-hSNglpVO4w45Z4cINi0C3Ys4jAJ+L3YG11CbfiFfA4y5+4VDjcDwrc/XKOwiFtKorzrhKaD57aD1cQVv05v7zw==","signatures":[{"sig":"MEQCIH51e61oueL97L1TWu8fsoMqmg67h0n+3lSkHdYWo/2VAiBQKxMfs5/JcbHPz/nfHsc45NG/qQRqvRdoK4nx+Y+5gw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":694312},"type":"module","gitHead":"a9592c0b96d28af8953a3af49cebe2c1769d9869","scripts":{"test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeExtensions":["./index.ts"],"runtimeSetupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":">=2026.4.15"},"peerDependencies":{"openclaw":">=2026.4.15"},"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.5.56_1779691305177_0.6468044239189699","host":"s3://npm-registry-packages-npm-production"}},"2026.5.57":{"name":"nostr-claw-bootstrap","version":"2026.5.57","_id":"nostr-claw-bootstrap@2026.5.57","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"318185a5bb9602f0db827ee7ec1c40cfe9c0f47b","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.5.57.tgz","fileCount":53,"integrity":"sha512-bZfuWL97QLz1ndTR2OmWG2buStctzQaQy18I2C7diw7XP4Hn6X3SQT8OFKx/91BAl/lDdq8eUau2O+5fOMHUqw==","signatures":[{"sig":"MEUCIDrt6TARTKLo1jWR8e2Z6ESB0y0w76zvWEsiKwFVeVXqAiEA2h2Gw3gEIERroSvfWoyMZ0k12AmGBEeaUzE9zEBH/PA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":695661},"type":"module","gitHead":"62b63700e8b28d51e27cc56a170429df4cde7b9c","scripts":{"test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeExtensions":["./index.ts"],"runtimeSetupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":">=2026.4.15"},"peerDependencies":{"openclaw":">=2026.4.15"},"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.5.57_1779732822455_0.7725745210775368","host":"s3://npm-registry-packages-npm-production"}},"2026.5.58":{"name":"nostr-claw-bootstrap","version":"2026.5.58","_id":"nostr-claw-bootstrap@2026.5.58","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"47172c85af48a06b622d8c98235617875189f795","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.5.58.tgz","fileCount":53,"integrity":"sha512-MOMPdh6i4G+GguEJF3Hf7aPWPmWDGZ6FWidvXcUH4j5xhEuUiJSAVW6Kryuik8AZiSFLst5wY1y9LSWp1ejdvA==","signatures":[{"sig":"MEUCIFLFk5qGvIlupmEMZ9B5sWOH5ubEHp8QdchFNhSi/djxAiEAglmp8u8men2e1jErfD+/RXmTaIpwgnoSnvQv8nEeo5c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":697917},"type":"module","gitHead":"48515209b17864725d415d64087b29bf064bf86b","scripts":{"test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeExtensions":["./index.ts"],"runtimeSetupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":">=2026.4.15"},"peerDependencies":{"openclaw":">=2026.4.15"},"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.5.58_1780645228639_0.29912163110315815","host":"s3://npm-registry-packages-npm-production"}},"2026.6.5":{"name":"nostr-claw-bootstrap","version":"2026.6.5","_id":"nostr-claw-bootstrap@2026.6.5","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"5d81b65517183bbf5c3a2c75ab0677d711ea8e56","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.6.5.tgz","fileCount":53,"integrity":"sha512-1uqXDB+VweJnPirv28OVWID5Yh6MA9n4sHVrFiJTzdWK0aILJDTu304bOMBCJtiSQ3XuomsEBGLtCIg4+3LnFQ==","signatures":[{"sig":"MEUCIQDD8OBiAOVgBAn0zZPxep8OPAXoe2EVdqf28C+p9S40XQIgSYki2OorqYFmlFK0D1eh0S9iYpzsa0/zHq+8GivPV7M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":698918},"type":"module","gitHead":"b09c8a5bb69a298f040f5b9a29051c6ca42c72ba","scripts":{"test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeExtensions":["./index.ts"],"runtimeSetupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":">=2026.4.15"},"peerDependencies":{"openclaw":">=2026.4.15"},"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.6.5_1780647410810_0.17992259644022646","host":"s3://npm-registry-packages-npm-production"}},"2026.6.10":{"name":"nostr-claw-bootstrap","version":"2026.6.10","_id":"nostr-claw-bootstrap@2026.6.10","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"cdd5a5da40b814639aab2856f6e7acd530e998c8","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.6.10.tgz","fileCount":53,"integrity":"sha512-fwLWa6k3IvKIOiSp3wW0xLQi/lEoQnhc8Uve5aBrl4ZxJ2TBPuXBr8HHIxKl/idALPM7Co9ZxO+ldenehsTuIw==","signatures":[{"sig":"MEUCICgw7EiLDSd6DaAlnWhEZ8XRaGxgLgS9NINDS9WQH+MbAiEA5oCgJkZGCdG/t+2FCFv57zX/YHyW4WEpFztGhzt/jIc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":699925},"type":"module","gitHead":"d7f3d6bc447bc4c42ec74ca4d20267ebe2a9c0f7","scripts":{"test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeExtensions":["./index.ts"],"runtimeSetupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":">=2026.4.15"},"peerDependencies":{"openclaw":">=2026.4.15"},"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.6.10_1781151976086_0.7953133292397006","host":"s3://npm-registry-packages-npm-production"}},"2026.6.10-a":{"name":"nostr-claw-bootstrap","version":"2026.6.10-a","_id":"nostr-claw-bootstrap@2026.6.10-a","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"0d868ebfd26512acefedf1aa8ba0f192bfb75c5b","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.6.10-a.tgz","fileCount":53,"integrity":"sha512-XFw1SZN9PNIrCtX+STHUoq9cS0q+PmpL3Fccyr+eQdsO7/C/kkBv+gUwnFUc09cvOjJLNZci+Y2mnTVDohxEiw==","signatures":[{"sig":"MEUCIQCM4Tt7QuR6O/pJRFYl1If+vuEPgW33amAieK0jKmZX6wIgQ6oKD16FuZwJliOOscHu/UNO2m4EUkUsprzJa+qiZIQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":705723},"type":"module","gitHead":"2cbd1886f15315a32b92669e869945d643adfdee","scripts":{"test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeExtensions":["./index.ts"],"runtimeSetupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"openclaw":">=2026.4.15"},"peerDependencies":{"openclaw":">=2026.4.15"},"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.6.10-a_1781153007837_0.9826934297452374","host":"s3://npm-registry-packages-npm-production"}},"2026.6.10-b":{"name":"nostr-claw-bootstrap","version":"2026.6.10-b","_id":"nostr-claw-bootstrap@2026.6.10-b","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"6b207f5f9cf76af11845238f4a5a92d53d6ad666","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.6.10-b.tgz","fileCount":53,"integrity":"sha512-k62w9UhEYn/DkNyt4/aujv862SXhQOgXzO+mA/j6qNperDKdduEZpwp6lfJDWIOlP0aycPhF1knnkBUmNRWiLQ==","signatures":[{"sig":"MEYCIQCbpLLoLteujoVItnNu1dfcDoI2z0/aKyGLlFeNmN2pjAIhALS5gUF+4qgflu8QnXtGQ2jLIZXD91Keqb/Vv122lXiH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":706923},"type":"module","gitHead":"77be8f0d945afb915c30fc848c7f0ecdfb6ae5e1","scripts":{"test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeExtensions":["./index.ts"],"runtimeSetupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"openclaw":">=2026.4.15"},"peerDependencies":{"openclaw":">=2026.4.15"},"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.6.10-b_1781154016327_0.8922859013887385","host":"s3://npm-registry-packages-npm-production"}},"2026.7.4":{"name":"nostr-claw-bootstrap","version":"2026.7.4","_id":"nostr-claw-bootstrap@2026.7.4","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"feb5775f0707917a5229c273f39a045e27574ded","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.7.4.tgz","fileCount":54,"integrity":"sha512-8FBJA4TLdNX+nQDTm67quPI7T6WSRc+LE0DJRegTeupdV4YbPR5wKA4mr7CGNxx6g52UpK0umpos0hkHGZAIUA==","signatures":[{"sig":"MEYCIQDdK8wam/9D8vmmmE3hH9rmo/4wI/7GZLD0qiPvVI09YwIhAKAmizqOgvDqZvZA+2MHgaxo2mXAfGZeCBbvVmk5m+jk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":713615},"type":"module","gitHead":"6b38fc47462f185319e3bde08bbe45ea03d115b1","scripts":{"test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeExtensions":["./index.ts"],"runtimeSetupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"cascadia-ts":"file:../cascadia-nips/generated/typescript","nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","openclaw":">=2026.4.15","typescript":"^5.5.0"},"peerDependencies":{"openclaw":">=2026.4.15"},"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.7.4_1783414813142_0.9807999109878169","host":"s3://npm-registry-packages-npm-production"}},"2026.7.7":{"name":"nostr-claw-bootstrap","version":"2026.7.7","_id":"nostr-claw-bootstrap@2026.7.7","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"1efa6ccb6da1b6c3976c9b5775b558d9a71d57d9","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.7.7.tgz","fileCount":56,"integrity":"sha512-C4YCy5H5nfvd7iozoUVjFZ48nbqCTbWcQdVQazY480bJwHZivqBncGf+dORJatDtxrQbOaDvhQkQ4w/5xo/2XQ==","signatures":[{"sig":"MEUCIAqkWIHlwO5EjzhW86BjRoZw90f9VWy9vtLnA7TLLRCmAiEAobBOtQP5JkTRDmurKbSU2OTcesnz7hHbz0EwjK16iqk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":765080},"type":"module","gitHead":"617a66da0aba9dae7db7466a9868bcfafdb68923","scripts":{"test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeExtensions":["./index.ts"],"runtimeSetupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"cascadia-ts":"file:../cascadia-nips/generated/typescript","nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","openclaw":">=2026.4.15","typescript":"^5.5.0"},"peerDependencies":{"openclaw":">=2026.4.15"},"bundleDependencies":["cascadia-ts"],"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.7.7_1783415505941_0.4240524901615328","host":"s3://npm-registry-packages-npm-production"}},"2026.7.8":{"name":"nostr-claw-bootstrap","version":"2026.7.8","_id":"nostr-claw-bootstrap@2026.7.8","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"f27c2775279e07bd033aff03cbf78b6833e79682","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.7.8.tgz","fileCount":58,"integrity":"sha512-LkXMRHUzkUruXH9bRmWty8YDWpKPXMTGToJ0vKQmj+XnJuOWuP0u/2ES0dzbXA+a/4kDydYJiN+HDhfmKMyyEw==","signatures":[{"sig":"MEYCIQD9OFYVZfvPMENCKmcDxNLnRrqSzYzFnobLaMBRdXTrsQIhAJOHNBLTFd5XXMnCtxYKQVYxGOK13yzpTuBUrQX71hNo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":825179},"type":"module","gitHead":"d18c3473394dfb5633273d2398cf5e7ec7b25156","scripts":{"test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeExtensions":["./index.ts"],"runtimeSetupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"cascadia-ts":"file:../cascadia-nips/generated/typescript","nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","openclaw":">=2026.4.15","typescript":"^5.5.0"},"peerDependencies":{"openclaw":">=2026.4.15"},"bundleDependencies":["cascadia-ts"],"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.7.8_1783417873068_0.586934724189728","host":"s3://npm-registry-packages-npm-production"}},"2026.7.9":{"name":"nostr-claw-bootstrap","version":"2026.7.9","_id":"nostr-claw-bootstrap@2026.7.9","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"83521379bd0bdcb9c37630c1f4c59d7364b3ada5","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.7.9.tgz","fileCount":58,"integrity":"sha512-rWVx0PTTDH+mB1WtxphNv0K/IyAL5CzrgcV9jMeNjQ/KtfGpW3LdFcjT6xOR3t9S3DhIceZyrtjfTOEUNUsSBw==","signatures":[{"sig":"MEYCIQDxtDuC46+ojXafEznjGxCbbrVs/3NsNhoSFlvaqEh/xAIhANykAQpTBRoTORDCH9wwvob4/9XlVF+vQctFlb3/yqBo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":829488},"type":"module","gitHead":"9a37f8e482593748b33f60913583b0b949ceee5d","scripts":{"test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeExtensions":["./index.ts"],"runtimeSetupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"cascadia-ts":"file:../cascadia-nips/generated/typescript","nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","openclaw":">=2026.4.15","typescript":"^5.5.0"},"peerDependencies":{"openclaw":">=2026.4.15"},"bundleDependencies":["cascadia-ts"],"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.7.9_1783454184719_0.5579050989184284","host":"s3://npm-registry-packages-npm-production"}},"2026.7.10":{"name":"nostr-claw-bootstrap","version":"2026.7.10","_id":"nostr-claw-bootstrap@2026.7.10","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"94a1959d2df42d2e4e30e216ecc73b80100cb6ff","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.7.10.tgz","fileCount":59,"integrity":"sha512-Jwcnh+9oWOSVBl0CmwVtTUbSEYsGbHZA/cT/f+9sR984+mWVIMPTkCh6gdB44OqkyfSapXezovgxcNQNb+1gsA==","signatures":[{"sig":"MEUCIB1KGyYwUYiwpNltVci0cVrQS8ZE9Kl199HEqtAEQEedAiEAy9iagdEcUh3A04HwLHuq+/c4MoNlgsjHs6fgVvkqsdA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":832330},"type":"module","gitHead":"1df58bf3758355b1b432471d06032c5dd95a886a","scripts":{"postinstall":"node scripts/postinstall.js","test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeExtensions":["./index.ts"],"runtimeSetupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"cascadia-ts":"file:../cascadia-nips/generated/typescript","nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","openclaw":">=2026.4.15","typescript":"^5.5.0"},"peerDependencies":{"openclaw":">=2026.4.15"},"bundleDependencies":["cascadia-ts"],"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.7.10_1783459674884_0.12756310685945738","host":"s3://npm-registry-packages-npm-production"}},"2026.7.12":{"name":"nostr-claw-bootstrap","version":"2026.7.12","_id":"nostr-claw-bootstrap@2026.7.12","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"27c64f4e826c722840a36011c92d0966b862ceb5","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.7.12.tgz","fileCount":63,"integrity":"sha512-WBGAhYXO+IUadE0X1g61kMVdWo/bY+Dc23M5nZmqm+muI5AwsvbBHya4JE1Cl9R9dAZbeD6aN0CN0k80iWfzvQ==","signatures":[{"sig":"MEUCIQDfkPwNVv7Svr7NuX8RnWNEFWGWQQsTHv+RaxEWGuysSQIgE2Ai71b6vvi8IN6pGbYpyV/bjVpshKyrhG1yaKoUWsE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":884694},"type":"module","gitHead":"21fadfdb366f986d2b00656ad5a7014615716fc6","scripts":{"build":"tsc --noEmit --noCheck --module NodeNext --moduleResolution NodeNext --target ES2023 index.ts api.ts runtime-api.ts setup-api.ts setup-entry.ts src/*.ts test/setup.ts vitest.config.ts","postinstall":"node scripts/postinstall.js","test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeExtensions":["./index.ts"],"runtimeSetupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"cascadia-ts":"file:../cascadia-nips/generated/typescript","nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","openclaw":">=2026.4.15","typescript":"^5.5.0"},"peerDependencies":{"openclaw":">=2026.4.15"},"bundleDependencies":["cascadia-ts"],"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.7.12_1783738388882_0.5789434646256044","host":"s3://npm-registry-packages-npm-production"}},"2026.7.13":{"name":"nostr-claw-bootstrap","version":"2026.7.13","_id":"nostr-claw-bootstrap@2026.7.13","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"cd1af3b719123e00c3e3cb994df6b461c2140b4a","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.7.13.tgz","fileCount":63,"integrity":"sha512-0imH2Im+tMcsS4ALkj27d3fEgy1b3hF5T+yfLtNMuPsgpMnhedaoXHRQ0knm0mfR4bGhuYsBankFQ2BKDWHgng==","signatures":[{"sig":"MEUCIAfZK29Gw9FfTVwBvE0nh9lLwzFemf9bRPoV16hNUb/mAiEA0vUh9ln9a0Y28l2jO7grqgY2bGmxQSzRgig63BpzQfk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":885397},"type":"module","gitHead":"f47bc3c4c712b598f272db027da3cb4578f865e2","scripts":{"build":"tsc --noEmit --noCheck --module NodeNext --moduleResolution NodeNext --target ES2023 index.ts api.ts runtime-api.ts setup-api.ts setup-entry.ts src/*.ts test/setup.ts vitest.config.ts","postinstall":"node scripts/postinstall.js","test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeExtensions":["./index.ts"],"runtimeSetupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"cascadia-ts":"file:../cascadia-nips/generated/typescript","nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","openclaw":">=2026.4.15","typescript":"^5.5.0"},"peerDependencies":{"openclaw":">=2026.4.15"},"bundleDependencies":["cascadia-ts"],"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.7.13_1783745688846_0.09995043399583081","host":"s3://npm-registry-packages-npm-production"}},"2026.7.14":{"name":"nostr-claw-bootstrap","version":"2026.7.14","_id":"nostr-claw-bootstrap@2026.7.14","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"fa52bd1cf8f56e4901de3e4fb717ebf5b825be75","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.7.14.tgz","fileCount":63,"integrity":"sha512-QqNpSAcKyEPPvMWQSlDN0U+GjJsjYBAXTetz9KV80o30REZ0g/WL4bKIP+fq5xc7orl8EDBZXxyhrenMIUTPtg==","signatures":[{"sig":"MEUCIQDYeh5zPk835kutn4+OzvS0cenF7J1DJOHWvECi+D7eBAIgHv/j8+yPg/fU2Hki9+DGgMdlXwefH+YSRJGGdfY3SJY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":886269},"type":"module","gitHead":"d869d01f26f790d76b2e1ec4a447c40b8cdf4640","scripts":{"build":"tsc --noEmit --noCheck --module NodeNext --moduleResolution NodeNext --target ES2023 index.ts api.ts runtime-api.ts setup-api.ts setup-entry.ts src/*.ts test/setup.ts vitest.config.ts","postinstall":"node scripts/postinstall.js","test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeExtensions":["./index.ts"],"runtimeSetupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"cascadia-ts":"file:../cascadia-nips/generated/typescript","nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","openclaw":">=2026.4.15","typescript":"^5.5.0"},"peerDependencies":{"openclaw":">=2026.4.15"},"bundleDependencies":["cascadia-ts"],"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.7.14_1783746482909_0.9780259751446105","host":"s3://npm-registry-packages-npm-production"}},"2026.7.15":{"name":"nostr-claw-bootstrap","version":"2026.7.15","_id":"nostr-claw-bootstrap@2026.7.15","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"aec8811b76c4445621ed076bd7f7659fd23b75f2","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.7.15.tgz","fileCount":63,"integrity":"sha512-ethOB3iZs/eS3d/wDYial5slTjnsirCqld82ZCLbPzq7C6lKVfycuMK5roY08u0BLm+up63p7gJtsYHZAwY5Yw==","signatures":[{"sig":"MEQCIFRTX/Xs16lFTlzfrOs0a/pXEvKHHFodLDNKU07+OVcKAiA35ilRYh9d5SJbgu3ddpCTOMrXHC2l4HFp7/mcbw98/A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":893459},"type":"module","gitHead":"44a694f972d637ae6f79fa38c4f52a4d18471020","scripts":{"build":"tsc --noEmit --noCheck --module NodeNext --moduleResolution NodeNext --target ES2023 index.ts api.ts runtime-api.ts setup-api.ts setup-entry.ts src/*.ts test/setup.ts vitest.config.ts","postinstall":"node scripts/postinstall.js","test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeExtensions":["./index.ts"],"runtimeSetupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"cascadia-ts":"file:../cascadia-nips/generated/typescript","nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","openclaw":">=2026.4.15","typescript":"^5.5.0"},"peerDependencies":{"openclaw":">=2026.4.15"},"bundleDependencies":["cascadia-ts"],"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.7.15_1783748809016_0.3117182846958204","host":"s3://npm-registry-packages-npm-production"}},"2026.7.16":{"name":"nostr-claw-bootstrap","version":"2026.7.16","_id":"nostr-claw-bootstrap@2026.7.16","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"9197e4f1deea3daa75e02455a2c0a5bb1cea1b4b","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.7.16.tgz","fileCount":71,"integrity":"sha512-jkVA2gGOz8T5imVTLHxQU25ZdWjGYTGReaLet2ABo83wd7Kp1/00yBMXy5qkbovOURZbaf06H7nHdIp9K/5oEw==","signatures":[{"sig":"MEQCIDiQTPm9rIK9HYsyfB9Kce1GNvfFa97nl1rKxzCr77ZBAiAbEtclX6EzVHDmkeHKeoG60G0IAsCtHbvFu5y1Ed2Fzw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":961532},"type":"module","gitHead":"6d40963cad7c0b73323b1bd1e243139a002722fa","scripts":{"build":"tsc --noEmit --noCheck --module NodeNext --moduleResolution NodeNext --target ES2023 index.ts api.ts runtime-api.ts setup-api.ts setup-entry.ts src/*.ts test/setup.ts vitest.config.ts","postinstall":"node scripts/postinstall.js","test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeExtensions":["./index.ts"],"runtimeSetupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"cascadia-ts":"file:../cascadia-nips/generated/typescript","nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","openclaw":">=2026.4.15","typescript":"^5.5.0"},"peerDependencies":{"openclaw":">=2026.4.15"},"bundleDependencies":["cascadia-ts"],"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.7.16_1783750363584_0.47597784927905984","host":"s3://npm-registry-packages-npm-production"}},"2026.7.17":{"name":"nostr-claw-bootstrap","version":"2026.7.17","_id":"nostr-claw-bootstrap@2026.7.17","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"061cfeca7caa3aaeb06860bf1afa7d87220e417c","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.7.17.tgz","fileCount":71,"integrity":"sha512-AROoOpibDh3YpcalkSTb9fJFcTrcNv+XwB005Mqv+yxfI1kR3wnEVdFBs70Tyg8CUNy3GxumesbC4LoFGcG5dA==","signatures":[{"sig":"MEUCICSwBcoRIcn8iMUhJOodWpHDYEgRjmphPKHFjDnnXAUJAiEAskLdJEiFbCxpOb4J7VHZQp9IEFVejzZVFJE1XpjAPOU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":985674},"type":"module","gitHead":"8b0b6767856a4fc13f9b088d2c1023e7654539eb","scripts":{"build":"tsc --noEmit --noCheck --module NodeNext --moduleResolution NodeNext --target ES2023 index.ts api.ts runtime-api.ts setup-api.ts setup-entry.ts src/*.ts test/setup.ts vitest.config.ts","postinstall":"node scripts/postinstall.js","test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeExtensions":["./index.ts"],"runtimeSetupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"cascadia-ts":"file:../cascadia-nips/generated/typescript","nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","openclaw":">=2026.4.15","typescript":"^5.5.0"},"peerDependencies":{"openclaw":">=2026.4.15"},"bundleDependencies":["cascadia-ts"],"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.7.17_1783755492380_0.6837533245419554","host":"s3://npm-registry-packages-npm-production"}},"2026.7.18":{"name":"nostr-claw-bootstrap","version":"2026.7.18","_id":"nostr-claw-bootstrap@2026.7.18","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"dist":{"shasum":"92110dc3efb350439cbe1ab11a81edfdc9b8d6e9","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.7.18.tgz","fileCount":71,"integrity":"sha512-HDMdbw6WrXBTVa99ObJMtnhqU29h0QM6f4BHoR3J7AtSwJwSdi+YhbrRCTubyTS3CLlnicLKl4quJIUduJvEpg==","signatures":[{"sig":"MEYCIQDDxebiKdIkh/dGgmiZvTdHYDAI+2IHevCpLpbsX3ICPgIhAKaFz5Uam8XkfQTABGEsQdAi432wT7aC3ZY1oBMwldI+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":992728},"type":"module","gitHead":"5e0c913530798aae78ef2518369a95711700647b","scripts":{"build":"tsc --noEmit --noCheck --module NodeNext --moduleResolution NodeNext --target ES2023 index.ts api.ts runtime-api.ts setup-api.ts setup-entry.ts src/*.ts test/setup.ts vitest.config.ts","postinstall":"node scripts/postinstall.js","test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"openclaw":{"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"compat":{"pluginApi":">=2026.4.15"},"channel":{"id":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","label":"Nostr","order":55,"docsPath":"/channels/nostr","docsLabel":"nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"release":{"publishToNpm":true},"extensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeExtensions":["./index.ts"],"runtimeSetupEntry":"./setup-entry.ts"},"_npmVersion":"11.12.1","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","directories":{},"_nodeVersion":"25.9.0","dependencies":{"cascadia-ts":"file:../cascadia-nips/generated/typescript","nostr-tools":"^2.23.3"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","openclaw":">=2026.4.15","typescript":"^5.5.0"},"peerDependencies":{"openclaw":">=2026.4.15"},"bundleDependencies":["cascadia-ts"],"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nostr-claw-bootstrap_2026.7.18_1783890240728_0.21837080073987392","host":"s3://npm-registry-packages-npm-production"}},"2026.7.19":{"name":"nostr-claw-bootstrap","version":"2026.7.19","description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","type":"module","bin":{"nostr-claw-bootstrap":"scripts/nostr-claw-bootstrap.js"},"scripts":{"postinstall":"node scripts/postinstall.js","build":"tsc --noEmit --noCheck --module NodeNext --moduleResolution NodeNext --target ES2023 index.ts api.ts runtime-api.ts setup-api.ts setup-entry.ts src/*.ts test/setup.ts vitest.config.ts","test:bootstrap":"node --test test/nostr-claw-bootstrap.test.mjs"},"dependencies":{"cascadia-ts":"file:../cascadia-nips/generated/typescript","nostr-tools":"^2.23.3"},"devDependencies":{"openclaw":">=2026.4.15","typescript":"^5.5.0","vitest":"^4.1.5"},"peerDependencies":{"openclaw":">=2026.4.15"},"peerDependenciesMeta":{"openclaw":{"optional":true}},"openclaw":{"extensions":["./index.ts"],"runtimeExtensions":["./index.ts"],"setupEntry":"./setup-entry.ts","runtimeSetupEntry":"./setup-entry.ts","channel":{"id":"nostr","label":"Nostr","selectionLabel":"Nostr (NIP-04 + NIP-17 DMs)","docsPath":"/channels/nostr","docsLabel":"nostr","blurb":"Decentralized protocol; encrypted DMs via NIP-04 and NIP-17.","order":55,"quickstartAllowFrom":true},"install":{"npmSpec":"nostr-claw-bootstrap","localPath":"extensions/nostr","defaultChoice":"npm","minHostVersion":">=2026.4.15"},"compat":{"pluginApi":">=2026.4.15"},"build":{"openclawVersion":"2026.4.15"},"bundle":{"stageRuntimeDependencies":true},"release":{"publishToNpm":true}},"gitHead":"b635ff7f8b9f0d02c552371db33ac407172e624a","_id":"nostr-claw-bootstrap@2026.7.19","bundleDependencies":["cascadia-ts"],"_nodeVersion":"25.9.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-xj8JZjKYWhgNHtJhjgmJBcCCtcrWO/5p2Cq7AVI2k2TEBiVeIfsva6P9clwlaGOozGT6neD6BEsiTvRLCBRnKA==","shasum":"a22612eb81c042009b05046135a879a1c6a50630","tarball":"https://registry.npmjs.org/nostr-claw-bootstrap/-/nostr-claw-bootstrap-2026.7.19.tgz","fileCount":71,"unpackedSize":1008388,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBeEb+RdmfdInNonBS3hwpx+UhV4IsH7ezrgWcYIfVUgAiEA9TO1Jw8nANXl1Wfe1g/enK3SnMcZ+zT24tPmcX5P3CM="}]},"_npmUser":{"name":"chebizarro","email":"chebizarro@gmail.com"},"directories":{},"maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/nostr-claw-bootstrap_2026.7.19_1783986703882_0.17450793451954616"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-08T18:01:19.656Z","modified":"2026-07-13T23:51:44.150Z","2026.4.15":"2026-05-08T18:01:19.896Z","2026.4.16":"2026-05-08T18:17:28.505Z","2026.4.17":"2026-05-08T18:30:45.987Z","2026.4.18":"2026-05-08T19:09:42.304Z","2026.5.9":"2026-05-08T19:29:28.334Z","2026.5.10":"2026-05-08T19:55:33.185Z","2026.5.12":"2026-05-08T20:09:38.818Z","2026.5.16":"2026-05-08T21:11:17.881Z","2026.5.17":"2026-05-11T23:42:35.299Z","2026.5.18":"2026-05-12T09:29:13.919Z","2026.5.19":"2026-05-13T15:43:41.206Z","2026.5.20":"2026-05-14T18:30:31.917Z","2026.5.29":"2026-05-17T06:49:42.650Z","2026.5.31":"2026-05-17T07:07:51.220Z","2026.5.33":"2026-05-17T07:58:50.263Z","2026.5.34":"2026-05-17T08:26:03.287Z","2026.5.35":"2026-05-17T08:59:26.108Z","2026.5.36":"2026-05-17T14:41:17.959Z","2026.5.37":"2026-05-17T14:58:22.151Z","2026.5.38":"2026-05-17T16:01:30.452Z","2026.5.39":"2026-05-17T16:10:41.496Z","2026.5.41":"2026-05-17T17:01:03.111Z","2026.5.43":"2026-05-17T19:35:27.837Z","2026.5.44":"2026-05-17T20:00:22.502Z","2026.5.45":"2026-05-17T22:56:16.886Z","2026.5.46":"2026-05-17T23:13:42.023Z","2026.5.50":"2026-05-18T23:02:57.899Z","2026.5.51":"2026-05-19T21:17:55.460Z","2026.5.52":"2026-05-23T23:09:52.356Z","2026.5.53":"2026-05-23T23:12:13.456Z","2026.5.54":"2026-05-23T23:18:02.447Z","2026.5.56":"2026-05-25T06:41:45.338Z","2026.5.57":"2026-05-25T18:13:42.603Z","2026.5.58":"2026-06-05T07:40:28.853Z","2026.6.5":"2026-06-05T08:16:50.983Z","2026.6.10":"2026-06-11T04:26:16.213Z","2026.6.10-a":"2026-06-11T04:43:28.023Z","2026.6.10-b":"2026-06-11T05:00:16.495Z","2026.7.4":"2026-07-07T09:00:13.310Z","2026.7.7":"2026-07-07T09:11:46.092Z","2026.7.8":"2026-07-07T09:51:13.250Z","2026.7.9":"2026-07-07T19:56:24.917Z","2026.7.10":"2026-07-07T21:27:55.087Z","2026.7.12":"2026-07-11T02:53:09.041Z","2026.7.13":"2026-07-11T04:54:49.000Z","2026.7.14":"2026-07-11T05:08:03.113Z","2026.7.15":"2026-07-11T05:46:49.165Z","2026.7.16":"2026-07-11T06:12:43.728Z","2026.7.17":"2026-07-11T07:38:12.584Z","2026.7.18":"2026-07-12T21:04:00.918Z","2026.7.19":"2026-07-13T23:51:44.057Z"},"description":"Bootstrap installer for the OpenClaw Nostr channel plugin — overrides the hostile bundled copy","maintainers":[{"name":"chebizarro","email":"chebizarro@gmail.com"}],"readme":"# nostr-claw-bootstrap\n\nNostr channel plugin for OpenClaw — encrypted DMs, public notes, identity resolution, relay discovery, public channels, and 20+ NIP implementations.\n\n## Overview\n\nThis extension adds Nostr as a full-featured messaging and social channel to OpenClaw. It enables your agent to:\n\n- Receive and send encrypted DMs via NIP-04 and NIP-17 (gift-wrapped)\n- Publish and react to public notes (kind:1)\n- Resolve NIP-05 identities and discover relay capabilities\n- Create and moderate public channels (NIP-28)\n- Repost content, publish file metadata, and generate zap requests\n- Encrypt messages with NIP-44 versioned encryption\n- Authenticate to relays (NIP-42) and HTTP services (NIP-98)\n- Delegate signing to a remote NIP-46 bunker (no local private key needed)\n- Access 20+ additional NIP implementations from `nostr-tools`\n\n## Installation\n\n### Quick install\n\n```bash\nnpx nostr-claw-bootstrap\n```\n\nThis single command:\n\n1. detects the host OpenClaw version\n2. installs this plugin as a managed npm override via\n   `openclaw plugins install npm:nostr-claw-bootstrap --force`\n3. removes any stale direct-copy install left by older bootstrap versions\n   (`~/.openclaw/extensions/nostr`) so it can't shadow the managed install\n4. enables the plugin in `openclaw.json`\n5. refreshes the persisted plugin registry (via the install)\n6. runs a best-effort plugin-graph smoke test\n\nOpenClaw ranks a tracked global (npm) install ahead of the bundled copy, so the\nhostile upstream `nostr` plugin is overridden **without** copying files into the\nhost OpenClaw install or deleting anything from it. The managed npm project at\n`~/.openclaw/npm/projects/nostr-claw-bootstrap` becomes the single owner of the\n`nostr` plugin id, which is what avoids the \"duplicate plugin id detected\"\nwarning that a second (direct-copy) install would trigger.\n\nTo install from a local checkout instead of the npm registry, pass\n`--plugin-source`:\n\n```bash\nnpx nostr-claw-bootstrap --plugin-source /path/to/openclaw-nostr\n```\n\nWith an explicit OpenClaw checkout / CLI path:\n\n```bash\nnpx nostr-claw-bootstrap --openclaw /path/to/openclaw.mjs\n```\n\nFor machine-readable output:\n\n```bash\nnpx nostr-claw-bootstrap --json\n```\n\n### From this repo (Cascadia fork)\n\n```bash\ngit clone https://git.sharegap.net/cascadia/openclaw-nostr.git\n```\n\nSee [Docker Deployment](#docker-deployment) for containerized setups.\n\n## Cascadia Fleet Role\n\nThis repo is the **durable maintenance layer** for Cascadia's Nostr fixes when upstream OpenClaw upgrades clobber local agent installs.\n\nWe do **not** currently maintain a separately named OpenClaw package. Instead:\n\n- Upstream OpenClaw remains the base runtime\n- This repo is the source of truth for Nostr-specific durability patches and extended features\n- Agent upgrades should re-apply this repo's patch layer after each OpenClaw upgrade\n\nSee:\n- `docs/UPGRADE-WORKFLOW.md`\n- `docs/COMPATIBILITY.md`\n- `scripts/apply-to-agent.sh`\n- `scripts/check-agent.sh`\n\n## Quick Setup\n\n1. Generate a Nostr keypair (if you don't have one):\n\n   ```bash\n   # Using nak CLI\n   nak key generate\n\n   # Or use any Nostr key generator\n   ```\n\n2. Add to your config (`~/.openclaw/openclaw.json`):\n\n   ```json\n   {\n     \"channels\": {\n       \"nostr\": {\n         \"privateKey\": \"${NOSTR_PRIVATE_KEY}\",\n         \"relays\": [\"wss://relay.sharegap.net\", \"wss://nos.lol\"]\n       }\n     }\n   }\n   ```\n\n3. Set the environment variable:\n\n   ```bash\n   export NOSTR_PRIVATE_KEY=\"nsec1...\"  # or 64-char hex format\n   ```\n\n4. Restart the gateway\n\n## Configuration\n\n| Key          | Type     | Default                                     | Description                                                |\n| ------------ | -------- | ------------------------------------------- | ---------------------------------------------------------- |\n| `privateKey` | string   | required*                                   | Bot's private key (nsec or hex). *Not required when using NIP-46. |\n| `relays`     | string[] | `[\"wss://relay.sharegap.net\", \"wss://nos.lol\"]` | WebSocket relay URLs                                       |\n| `dmPolicy`   | string   | `\"pairing\"`                                 | Access control: `pairing`, `allowlist`, `open`, `disabled` |\n| `allowFrom`  | string[] | `[]`                                        | Allowed sender pubkeys (npub or hex)                       |\n| `enabled`    | boolean  | `true`                                      | Enable/disable the channel                                 |\n| `name`       | string   | -                                           | Display name for the account                               |\n\n### NIP-46 Remote Signing\n\nWhen NIP-46 is enabled, event signing and encryption/decryption are delegated to a remote signer (bunker). No private key is stored locally — only a client secret used for the encrypted communication channel.\n\n| Key                      | Type     | Default   | Description                                                        |\n| ------------------------ | -------- | --------- | ------------------------------------------------------------------ |\n| `nip46`                  | boolean  | `false`   | Enable NIP-46 remote signing                                       |\n| `nip46BunkerUrl`         | string   | -         | `bunker://` URL or `user@domain` NIP-05 identifier                 |\n| `nip46SignerRelays`      | string[] | -         | Relay URLs for signer communication (defaults to bunker URL relays) |\n| `nip46Secret`            | string   | -         | Client secret key (hex) — use env var, not raw config               |\n| `nip46ConnectionTimeoutMs` | number | `60000`   | Connection timeout for the NIP-46 session                          |\n\n#### NIP-46 Setup\n\n1. Set up a bunker signer (e.g. [nsecBunker](https://nsecbunker.com), [Amber](https://github.com/nickkurt/amber), or any NIP-46 compatible signer)\n\n2. Generate a client secret (a random 32-byte hex key for the encrypted channel):\n\n   ```bash\n   # Generate a random client secret\n   openssl rand -hex 32\n   ```\n\n3. Store the client secret securely as an environment variable:\n\n   ```bash\n   export NOSTR_NIP46_SECRET=\"your-64-char-hex-client-secret\"\n   ```\n\n4. Configure in `openclaw.json`:\n\n   ```json\n   {\n     \"channels\": {\n       \"nostr\": {\n         \"nip46\": true,\n         \"nip46BunkerUrl\": \"bunker://abcdef...?relay=wss://relay.nsecbunker.com\",\n         \"relays\": [\"wss://relay.sharegap.net\", \"wss://nos.lol\"]\n       }\n     }\n   }\n   ```\n\n   Or with a NIP-05 bunker identifier:\n\n   ```json\n   {\n     \"channels\": {\n       \"nostr\": {\n         \"nip46\": true,\n         \"nip46BunkerUrl\": \"user@nsecbunker.com\"\n       }\n     }\n   }\n   ```\n\n5. Alternatively, use a `SecretRef` to point to the env var explicitly:\n\n   ```json\n   {\n     \"channels\": {\n       \"nostr\": {\n         \"nip46\": true,\n         \"nip46BunkerUrl\": \"bunker://abcdef...?relay=wss://relay.nsecbunker.com\",\n         \"nip46Secret\": { \"source\": \"env\", \"provider\": \"default\", \"id\": \"NOSTR_NIP46_SECRET\" }\n       }\n     }\n   }\n   ```\n\n#### Secret Sources\n\nThe `nip46Secret` field supports three `SecretRef` source types for production deployments:\n\n| Source | Example | Description |\n| ------ | ------- | ----------- |\n| `env`  | `{ \"source\": \"env\", \"name\": \"NOSTR_NIP46_SECRET\" }` | Read from environment variable (`id` or `name` field) |\n| `file` | `{ \"source\": \"file\", \"path\": \"/run/secrets/nip46\" }` | Read from a file (Docker secrets, tmpfs, etc.) |\n| `exec` | `{ \"source\": \"exec\", \"command\": \"vault kv get -field=secret nostr/nip46\" }` | Run a command, use stdout (10s timeout) |\n\nAll sources fall back to the `NOSTR_NIP46_SECRET` environment variable if the primary source fails.\n\n#### Enrollment Flow\n\nThe plugin provides a programmatic enrollment flow (`enrollNip46Signer()`) that automates the full NIP-46 setup ceremony:\n\n1. Generates a client secret (or reuses an existing one)\n2. Validates and parses the bunker URL\n3. Connects to the remote signer\n4. Verifies the remote pubkey matches expectations\n5. Runs a self-test on all delegated crypto operations\n6. Produces a config patch and env var instructions\n\n#### Cutover Migration\n\nTo migrate from local key to NIP-46 remote signing, use `performCutover()` which executes a transactional migration:\n\n1. Validates a local private key exists\n2. Snapshots the current config as backup\n3. Runs the enrollment flow (connect, verify, self-test)\n4. Applies the new config (enables NIP-46, removes `privateKey`)\n5. Runs post-cutover verification\n6. **Automatically rolls back** to the original config if any step fails\n\n#### Preflight Doctor\n\nThe `runNip46Doctor()` function performs 7 diagnostic checks:\n\n| Check | What it verifies |\n| ----- | ---------------- |\n| `config_valid` | Bunker URL and client secret are provided |\n| `bunker_url_parsed` | URL yields a pubkey (or is valid NIP-05) |\n| `client_secret_decodable` | Hex secret decodes to 32 bytes |\n| `signer_connect` | BunkerSigner connects within timeout |\n| `pubkey_match` | `get_public_key` matches expected identity |\n| `crypto_self_test` | sign, nip44, nip04 all work end-to-end |\n| `secret_recoverable` | Client secret re-decodes consistently (restart safety) |\n\n#### What Gets Delegated\n\nWhen NIP-46 is active, **all** identity-level cryptographic operations go through the remote signer:\n\n- Event signing (DMs, notes, reactions, deletions, reposts, channel messages, group messages)\n- NIP-04 encryption and decryption\n- NIP-44 encryption and decryption (used in NIP-17 gift wraps)\n- NIP-42 relay authentication\n- NIP-98 HTTP authentication\n\nThe client secret (`nip46Secret`) is only used to establish the NIP-44 encrypted channel with the bunker — it is **not** the identity private key.\n\n#### Startup Self-Test & Health Logging\n\nOn startup with NIP-46 enabled, the plugin:\n\n1. Logs a **signer health block** showing signing mode, identity pubkey, bunker URL, relay list, and session status\n2. Runs an automatic **self-test** exercising all delegated crypto operations:\n   - `get_public_key` — returns valid 64-char hex pubkey matching expected identity\n   - `sign_event` — signs a test kind:1 event\n   - `nip44_encrypt_decrypt` — round-trips NIP-44 encryption\n   - `nip04_encrypt_decrypt` — round-trips NIP-04 encryption\n3. Tracks **runtime health** (success/failure counts, last sign/decrypt/encrypt timestamps)\n\nFailures are logged as warnings — the bus still starts, but you'll know which operations aren't working.\n\n#### Custody Status\n\nThe `resolveCustodyStatus()` function reports the current signing posture:\n\n- **Signing mode**: `local-key`, `nip46-remote`, or `unconfigured`\n- **Key residency**: whether a local private key still exists in config\n- **NIP-46 readiness**: bunker URL + secret configured\n- **Runtime health**: signer success/failure counts and last operation timestamps\n- **Restart safety**: whether the secret source will survive a restart\n- **Warnings**: actionable alerts (e.g. \"local key still present after NIP-46 migration\")\n\n#### Rate-Limit Protection\n\nNIP-46 operations go through a **request queue** with:\n- Concurrency limit (default: 2 concurrent requests)\n- Stagger interval (default: 150ms between dispatches)\n- Exponential backoff retry on rate-limit errors (1s → 2s → 4s, up to 3 retries)\n\nThis prevents bursts of inbound messages from overwhelming the bunker relay with rapid-fire publishes.\n\n#### Outbound DM Safety Assertions\n\nThe NIP-17 outbound path includes runtime assertions that prevent routing bugs:\n- Recipient pubkey must not equal own pubkey (no self-DM)\n- Recipient pubkey must be valid 64-char hex\n- Post-wrap `p` tags must match the intended recipient for each wrap\n- Self-echo wraps are logged and ignored on the inbound path\n\n#### Security Considerations\n\n- **Never commit the client secret** to config files or version control\n- The `NOSTR_NIP46_SECRET` env var is the recommended storage method\n- The `SecretRef` mechanism supports `env`, `file`, and `exec` backends for production deployments\n- The bunker must be online for the agent to sign events — plan for connectivity\n\n## Access Control\n\n### DM Policies\n\n- **pairing** (default): Unknown senders receive a pairing code to request access\n- **allowlist**: Only pubkeys in `allowFrom` can message the bot\n- **open**: Anyone can message the bot (use with caution)\n- **disabled**: DMs are disabled\n\n### Example: Allowlist Mode\n\n```json\n{\n  \"channels\": {\n    \"nostr\": {\n      \"privateKey\": \"${NOSTR_PRIVATE_KEY}\",\n      \"dmPolicy\": \"allowlist\",\n      \"allowFrom\": [\"npub1abc...\", \"0123456789abcdef...\"]\n    }\n  }\n}\n```\n\n## Protocol Support\n\n### Core Messaging (Tier 0)\n\n| NIP    | Kind(s)      | Status      | Description                           |\n| ------ | ------------ | ----------- | ------------------------------------- |\n| NIP-01 | 1            | ✅ Full     | Basic event structure & public notes  |\n| NIP-04 | 4            | ✅ Full     | Encrypted DMs (legacy)                |\n| NIP-09 | 5            | ✅ Full     | Event deletion                        |\n| NIP-10 | —            | ✅ Full     | Thread references (root/reply/mention)|\n| NIP-17 | 1059         | ✅ Full     | Gift-wrapped DMs (modern)             |\n| NIP-25 | 7            | ✅ Full     | Reactions                             |\n| NIP-40 | —            | ✅ Full     | Event expiration                      |\n| NIP-65 | 10002        | ✅ Full     | Relay list metadata                   |\n\n### Tier 1 — Agent-Essential Features\n\n| NIP    | Kind(s)      | Status      | Description                           |\n| ------ | ------------ | ----------- | ------------------------------------- |\n| NIP-05 | —            | ✅ Full     | Identity resolution + domain search   |\n| NIP-11 | —            | ✅ Full     | Relay information + capability checks |\n| NIP-42 | 22242        | ✅ Full     | Relay authentication                  |\n| NIP-46 | 24133        | ✅ Full     | Remote signing (Nostr Connect/Bunker) |\n| NIP-57 | 9734, 9735   | ✅ Re-export| Zaps (Lightning payments)             |\n| NIP-94 | 1063         | ✅ Full     | File metadata                         |\n| NIP-98 | 27235        | ✅ Full     | HTTP authentication                   |\n| NIP-B7 | —            | ✅ Re-export| Blossom media server                  |\n\n### Tier 2 — Social & Channel Features\n\n| NIP    | Kind(s)            | Status      | Description                     |\n| ------ | ------------------ | ----------- | ------------------------------- |\n| NIP-13 | —                  | ✅ Re-export| Proof of Work                   |\n| NIP-18 | 6, 16              | ✅ Full     | Reposts (short text + generic)  |\n| NIP-27 | —                  | ✅ Full     | Content parsing (text/URLs/refs)|\n| NIP-28 | 40, 42, 43, 44     | ✅ Full     | Public channels (CRUD + mod)    |\n| NIP-44 | —                  | ✅ Full     | Versioned encryption            |\n\n### Tier 3 — Niche / Advanced (Namespace Re-exports)\n\n| NIP    | Module             | Description                           |\n| ------ | ------------------ | ------------------------------------- |\n| NIP-29 | `nostr-extras`     | Relay-based groups                    |\n| NIP-30 | `nostr-extras`     | Custom emoji                          |\n| NIP-39 | `nostr-extras`     | External identity verification        |\n| NIP-47 | `nostr-extras`     | Nostr Wallet Connect (NWC)            |\n| NIP-49 | `nostr-extras`     | Private key encryption (ncryptsec)    |\n| NIP-58 | `nostr-extras`     | Badges                                |\n| NIP-75 | `nostr-extras`     | Zap goals (fundraising)               |\n| NIP-77 | `nostr-extras`     | Negentropy sync                       |\n\n## Architecture\n\nThe plugin follows a three-layer architecture:\n\n```\nnostr-capabilities.ts   ← Event builders (pure functions, no I/O)\nnostr-discovery.ts      ← NIP-05/NIP-11/NIP-27 (network I/O with caching)\nnostr-extras.ts         ← Tier 3 namespace re-exports\nnip46-signer.ts         ← NIP-46 signer abstraction (NostrSigner interface)\nnip46-doctor.ts         ← NIP-46 preflight diagnostics (7-check health report)\nnip46-enroll.ts         ← NIP-46 enrollment flow (generate secret, connect, verify)\nnip46-cutover.ts        ← NIP-46 migration (local key → remote signer, auto-rollback)\nnip46-status.ts         ← Custody status reporting (signing mode, health, warnings)\n        │\nnostr-bus.ts            ← Runtime wiring (signing, publishing, subscriptions)\n        │\nchannel.ts              ← Public API (OpenClaw plugin interface)\n        │\nnostr-profile-http.ts   ← HTTP endpoints (/api/channels/nostr/...)\n```\n\n### Key Design Decisions\n\n- **Unsigned templates**: All event builders return `EventTemplate` objects. The bus layer handles signing via `finalizeEvent` (local) or `NostrSigner.signEvent` (NIP-46) and publishing via the pool. This keeps builders pure and testable.\n- **NIP-46 signer abstraction**: The `NostrSigner` interface (`nip46-signer.ts`) provides a unified API for signing, encryption, and decryption. When NIP-46 is enabled, all bus operations delegate to the remote `BunkerSigner` through a request queue (rate-limit protection) with retry logic; otherwise they use the local secret key. The abstraction is transparent to upstream consumers.\n- **NIP-46 lifecycle modules**: Enrollment (`nip46-enroll.ts`), cutover migration (`nip46-cutover.ts`), preflight diagnostics (`nip46-doctor.ts`), and custody status (`nip46-status.ts`) are standalone modules that can be called programmatically or wired into CLI commands.\n- **NIP-28 custom builders**: The upstream `nostr-tools/nip28` functions call `finalizeEvent` internally. We provide our own builders that return unsigned templates to fit the fork's `signAndPublish` pattern.\n- **Caching**: NIP-05 uses a 5-minute TTL with 500-entry LRU. NIP-11 uses a 10-minute TTL with 100-entry LRU. Network errors are not cached (retry on next call).\n- **Per-sender serialization**: Inbound messages from the same pubkey are processed serially to prevent race conditions during relay EOSE bursts (see `PATCHES.md`).\n- **Bounded startup catch-up**: DM subscriptions first query a capped historical window through startup time, then promote to live subscriptions after EOSE/timeout so relay backlog and live traffic have distinct lifecycles.\n- **Real outbound IDs**: Outbound channel `messageId` values are real Nostr identifiers. NIP-04 returns the signed kind:4 event ID; NIP-17 returns the recipient rumor ID after at least one recipient wrap is accepted while the bus also tracks accepted gift-wrap IDs.\n\n## HTTP API\n\nAll endpoints are under `/api/channels/nostr/:accountId/`. Authentication is handled by the OpenClaw gateway.\n\n### Profile Management\n\n| Method | Endpoint                        | Description                 |\n| ------ | ------------------------------- | --------------------------- |\n| GET    | `/profile`                      | Get current profile state   |\n| PUT    | `/profile`                      | Update and publish profile  |\n| POST   | `/profile/import`               | Import profile from relays  |\n\n### Identity & Discovery\n\n| Method | Endpoint                        | Description                            |\n| ------ | ------------------------------- | -------------------------------------- |\n| GET    | `/identity/:nip05`              | Resolve NIP-05 address to pubkey       |\n| GET    | `/identity/search/:domain?q=`   | Search NIP-05 domain for users         |\n| GET    | `/relay-info?url=wss://...`     | Get relay NIP-11 capability summary    |\n\n### Events\n\n| Method | Endpoint                        | Description                 |\n| ------ | ------------------------------- | --------------------------- |\n| POST   | `/note`                         | Publish a public note       |\n| POST   | `/reaction`                     | React to an event           |\n| DELETE | `/events`                       | Delete events               |\n\n### Example: Resolve a NIP-05 Identity\n\n```bash\ncurl http://localhost:18789/api/channels/nostr/default/identity/alice%40example.com\n```\n\n```json\n{\n  \"ok\": true,\n  \"nip05\": \"alice@example.com\",\n  \"pubkey\": \"aabbccdd...\",\n  \"relays\": [\"wss://relay1.example\", \"wss://relay2.example\"]\n}\n```\n\n### Example: Check Relay Capabilities\n\n```bash\ncurl \"http://localhost:18789/api/channels/nostr/default/relay-info?url=wss://relay.sharegap.net\"\n```\n\n```json\n{\n  \"ok\": true,\n  \"url\": \"wss://relay.sharegap.net\",\n  \"name\": \"Damus Relay\",\n  \"supportedNips\": [1, 4, 9, 11, 12, 16, 20, 22, 28, 33, 40],\n  \"authRequired\": false,\n  \"paymentRequired\": false,\n  \"restrictedWrites\": false\n}\n```\n\n## Docker Deployment\n\nThere are four ways to deploy this fork to an existing OpenClaw Docker setup, listed from simplest to most involved.\n\n### Option 1: Volume Mount (Recommended)\n\nMount the fork's source directory into the container and point OpenClaw's plugin loader at it. No image rebuild required.\n\n**1. Clone the fork on the Docker host:**\n\n```bash\ngit clone https://git.sharegap.net/cascadia/openclaw-nostr.git /opt/openclaw-nostr\n```\n\n**2. Add to your `docker-compose.yml`:**\n\n```yaml\nservices:\n  openclaw-gateway:\n    volumes:\n      - ${OPENCLAW_CONFIG_DIR}:/home/node/.openclaw\n      - ${OPENCLAW_WORKSPACE_DIR}:/home/node/.openclaw/workspace\n      # Mount the fork's source\n      - /opt/openclaw-nostr:/opt/openclaw-nostr:ro\n```\n\n**3. Tell OpenClaw to load the plugin via `openclaw.json`:**\n\n```json\n{\n  \"plugins\": {\n    \"load\": {\n      \"paths\": [\"/opt/openclaw-nostr\"]\n    }\n  },\n  \"channels\": {\n    \"nostr\": {\n      \"privateKey\": \"${NOSTR_PRIVATE_KEY}\",\n      \"relays\": [\"wss://relay.sharegap.net\", \"wss://nos.lol\"]\n    }\n  }\n}\n```\n\n**4. Restart:**\n\n```bash\ndocker compose restart openclaw-gateway\n```\n\n### Option 2: Config Extensions Directory\n\nCopy the fork into OpenClaw's user-level extensions directory, which is auto-scanned on startup.\n\n```bash\n# Copy into the config dir that's already mounted\ncp -r /opt/openclaw-nostr \"${OPENCLAW_CONFIG_DIR}/extensions/nostr\"\n\n# Restart\ndocker compose restart openclaw-gateway\n```\n\nOpenClaw discovers plugins from `~/.openclaw/extensions/` automatically — no `plugins.load.paths` config needed.\n\n### Option 3: Custom Dockerfile Layer\n\nBuild a derived image with the fork baked in. Best for CI/CD pipelines and reproducible deployments.\n\n```dockerfile\nFROM openclaw:latest\n\n# Copy in the fork\nCOPY openclaw-nostr /app/extensions/nostr\n\n# The fork overrides the bundled nostr extension at the same path\n```\n\nBuild and run:\n\n```bash\ndocker build -t openclaw-nostr:custom .\nOPENCLAW_IMAGE=openclaw-nostr:custom docker compose up -d\n```\n\n### Option 4: Build-Arg with Full Source\n\nIf you're building OpenClaw from source, include the nostr extension via the `OPENCLAW_EXTENSIONS` build arg:\n\n```bash\n# From the openclaw source root\ndocker build \\\n  --build-arg OPENCLAW_EXTENSIONS=\"nostr\" \\\n  -t openclaw:with-nostr .\n```\n\nThis uses the `extensions/nostr` directory within the OpenClaw source tree. To use the fork instead, replace `extensions/nostr` with the fork's source before building.\n\n### Plugin Discovery Precedence\n\nOpenClaw discovers plugins in this order (first match wins):\n\n1. **`plugins.load.paths`** — Explicit paths from config (Option 1)\n2. **Workspace extensions** — `<workspace>/.openclaw/extensions/`\n3. **User extensions** — `~/.openclaw/extensions/` (Option 2)\n4. **Bundled extensions** — `/app/extensions/` inside the image (Options 3 & 4)\n\nThe fork at a higher-precedence path will shadow the bundled upstream version.\n\n### Docker + Durability Patches\n\nIf you also need the runtime durability patches (reconnect fix, subscription handling, etc.), apply them after image build or container start:\n\n```bash\n# For volume-mount setups, run against the container\ndocker exec -it openclaw-gateway bash -c '...'\n\n# Or use the apply script against a Docker host\nscripts/apply-to-agent.sh user@docker-host\n```\n\nSee `PATCHES.md` for the full list of runtime patches.\n\n## Programmatic Usage\n\n### Channel-Level Functions\n\nThese are available from `channel.ts` and operate on named accounts:\n\n```typescript\nimport {\n  // Messaging\n  publishNostrNote,\n  publishNostrReaction,\n  deleteNostrEvents,\n  // Identity\n  resolveNostrIdentity,\n  searchNostrDomain,\n  validateNostrIdentity,\n  // Discovery\n  getNostrRelayInfo,\n  getNostrRelayCapabilities,\n  // Auth\n  getNostrHttpAuthToken,\n  // Media\n  publishNostrFileMetadata,\n  // Social\n  repostNostrEvent,\n  // Parsing\n  parseNostrContent,\n} from \"./src/channel.js\";\n\n// Resolve a NIP-05 identity\nconst alice = await resolveNostrIdentity(\"alice@example.com\");\n// { nip05: \"alice@example.com\", pubkey: \"aabb...\", relays: [\"wss://...\"] }\n\n// Check relay capabilities\nconst caps = await getNostrRelayCapabilities(\"wss://relay.sharegap.net\");\n// { supportedNips: [1, 4, ...], authRequired: false, ... }\n\n// Parse content into structured blocks\nconst blocks = parseNostrContent(\"Hello https://example.com #nostr\");\n// [{ type: \"text\", ... }, { type: \"url\", ... }, { type: \"hashtag\", ... }]\n```\n\n### Bus Handle (Direct Access)\n\nFor advanced use, get the bus handle from `getActiveNostrBuses()`:\n\n```typescript\nimport { getActiveNostrBuses } from \"./src/channel.js\";\n\nconst bus = getActiveNostrBuses().get(\"default\");\n\n// Send a DM and keep the real Nostr ID for logging/threading\nconst sent = await bus.sendDm(recipientPubkey, \"hello from OpenClaw\");\n// sent.eventId is the kind:4 ID for NIP-04, or the recipient rumor ID for NIP-17\n// sent.publishedEventIds contains the signed event IDs accepted by relays\n\n// NIP-44 encrypt a message\nconst key = bus.getNip44ConversationKey(recipientPubkey);\nconst encrypted = bus.nip44Encrypt(\"secret message\", key);\n\n// Create a public channel\nconst channelId = await bus.createChannel({\n  name: \"My Channel\",\n  about: \"A public channel for discussion\",\n});\n\n// Send a channel message\nawait bus.sendChannelMessage({\n  channelId,\n  content: \"Hello channel!\",\n  relayUrl: \"wss://relay.example\",\n});\n\n// Generate NIP-98 auth token for a Blossom upload\nconst token = await bus.getNip98Token(\"https://media.example.com/upload\", \"POST\");\n```\n\n### Tier 3 Extras (Namespace Imports)\n\n```typescript\nimport { nip49, nip58, nip29, nip47, nip30, BlossomClient } from \"./src/nostr-extras.js\";\n\n// NIP-49: Encrypt a private key for storage\nconst ncryptsec = nip49.encrypt(secretKey, \"password\");\nconst recovered = nip49.decrypt(ncryptsec, \"password\");\n\n// NIP-47: Parse a Nostr Wallet Connect string\nconst connection = nip47.parseConnectionString(\"nostr+walletconnect://...\");\n\n// NIP-30: Find custom emoji in content\nfor (const match of nip30.matchAll(\":custom_emoji: hello\")) {\n  console.log(match.shortcode, match.url);\n}\n```\n\n## Testing\n\n### Local Relay (Recommended)\n\n```bash\n# Using strfry\ndocker run -p 7777:7777 ghcr.io/hoytech/strfry\n\n# Configure openclaw to use local relay\n\"relays\": [\"ws://localhost:7777\"]\n```\n\n### Running Tests\n\nTests run via vitest from the parent OpenClaw workspace:\n\n```bash\n# From the openclaw workspace root\npnpm vitest run --config vitest.extensions.config.ts extensions/nostr/\n\n# Run a specific test file\npnpm vitest run --config vitest.extensions.config.ts extensions/nostr/src/nostr-discovery.test.ts\n```\n\n### Test Coverage\n\n| Test File                              | Covers                                                    |\n| -------------------------------------- | --------------------------------------------------------- |\n| `nostr-bus.protocol.test.ts`           | NIP-04/NIP-17 DM pipeline, reply routing, serialization   |\n| `nostr-capabilities-extended.test.ts`  | NIP-18 reposts, NIP-28 channels, NIP-13/44/57/94/42/98    |\n| `nostr-discovery.test.ts`              | NIP-05 identity, NIP-11 relay info, NIP-27 content parsing|\n| `nostr-extras.test.ts`                 | Tier 3 re-export surface verification                     |\n| `nostr-profile-http.test.ts`           | HTTP API endpoints including identity/relay-info routes    |\n| `nip46-signer.test.ts`                 | NIP-46 client secret encode/decode, bunker URL parsing, request queue |\n| `nip46-doctor.test.ts`                 | NIP-46 preflight diagnostics (config validation, report formatting) |\n| `nip46-enroll.test.ts`                 | NIP-46 enrollment flow (secret gen, URL parsing, progress) |\n| `nip46-cutover.test.ts`                | NIP-46 cutover migration (preconditions, rollback)         |\n| `nip46-status.test.ts`                 | Custody status resolution and formatting                   |\n| `config-schema.test.ts`                | Config validation including NIP-46 fields                  |\n| `types.test.ts`                        | Account resolution including NIP-46 config, env/file/exec secret sources |\n\n### Manual Test\n\n1. Start the gateway with Nostr configured\n2. Open Damus, Amethyst, or another Nostr client\n3. Send a DM to your bot's npub\n4. Verify the bot responds\n\n## Security Notes\n\n- Private keys are never logged\n- Event signatures are verified before processing\n- Use environment variables for keys, never commit to config files\n- Consider using `allowlist` mode in production\n- NIP-98 tokens are signed with the bus's key — scope them to specific URLs\n- NIP-44 conversation keys are derived from the bus's secret key\n- HTTP mutation endpoints (PUT, POST, DELETE) are restricted to loopback addresses\n- **NIP-46**: The client secret (`nip46Secret`) is distinct from the identity key — store it via `NOSTR_NIP46_SECRET` env var or a `SecretRef` (`env`, `file`, `exec`), never in raw config\n- **NIP-46 cutover**: Use `performCutover()` for safe migration — it auto-rolls back if verification fails\n\n## Troubleshooting\n\n### Bot not receiving messages\n\n1. Verify private key (or NIP-46 bunker URL + secret) is correctly configured\n2. Check relay connectivity\n3. Ensure `enabled` is not set to `false`\n4. Check the bot's public key matches what you're sending to\n\n### NIP-46 connection failing\n\n1. Verify the bunker is online and reachable\n2. Check `nip46BunkerUrl` is a valid `bunker://` URL or `user@domain`\n3. Verify `NOSTR_NIP46_SECRET` env var is set (64-char hex)\n4. Check relay connectivity to the signer relays\n5. Increase `nip46ConnectionTimeoutMs` if the bunker is slow to respond\n6. Check logs for `NIP-46 auth URL` — the bunker may require user approval\n\n### Messages not being delivered\n\n1. Check relay URLs are correct (must use `wss://`)\n2. Verify relays are online and accepting connections\n3. Check for rate limiting (reduce message frequency)\n\n### Docker: Plugin not loading\n\n1. Verify the volume mount path is correct and readable\n2. Check `plugins.load.paths` points to the right directory\n3. Run `openclaw plugins list` to see discovered plugins\n4. Check container logs: `docker compose logs openclaw-gateway`\n\n### NIP-05 resolution failing\n\n1. The target domain must serve `/.well-known/nostr.json`\n2. Check for CORS issues if resolving from a browser context\n3. Results are cached for 5 minutes — wait or restart to retry\n\n## License\n\nMIT\n","readmeFilename":"README.md"}