{"_id":"@0xsend/cws-cli","_rev":"10-a46607b02db6210e35db176ab0514763","name":"@0xsend/cws-cli","dist-tags":{"latest":"0.6.1"},"versions":{"0.1.0":{"name":"@0xsend/cws-cli","version":"0.1.0","author":{"name":"Send Foundation"},"license":"MIT","_id":"@0xsend/cws-cli@0.1.0","maintainers":[{"name":"eho-send","email":"eho@send.it"},{"name":"0xbigboss","email":"0xbigboss@proton.me"},{"name":"allen-send","email":"allen@send.it"}],"homepage":"https://github.com/canton-foundation/canton-monorepo#readme","bugs":{"url":"https://github.com/canton-foundation/canton-monorepo/issues"},"bin":{"cws":"dist/cws.js"},"dist":{"shasum":"ec5af401835056d58a6378048c0404853a4431f5","tarball":"https://registry.npmjs.org/@0xsend/cws-cli/-/cws-cli-0.1.0.tgz","fileCount":5,"integrity":"sha512-Z+Kf5O+BcCnVXTm5y6fB7PsapBdB+eQeGKjJApPu7ddDgGlD7j5NstS4hoZCpQFFAD3txYL+gCQoST+YTLHJ4A==","signatures":[{"sig":"MEYCIQCaTx4tFkyM0Ta6fxLrHPeKweJQCF92Fgv87qUFnuf8+wIhAM1w/GFWkUQcARIT1zwypFECtpzQbJD1ZFOvhVoBtg+e","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2090419},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"16490a24adba8547b5bf02deffcee0660aacc838","scripts":{"lint":"biome check .","test":"bun test src/__tests__","build":"node scripts/build.mjs","clean":"rm -rf dist","lint:fix":"biome check --write .","typecheck":"tsc --noEmit"},"_npmUser":{"name":"eho-send","email":"eho@send.it"},"repository":{"url":"git+https://github.com/canton-foundation/canton-monorepo.git","type":"git","directory":"packages/cws-cli"},"_npmVersion":"10.8.2","description":"End-user Canton wallet CLI (TUI + scripted)","directories":{},"_nodeVersion":"20.18.0","dependencies":{"ink":"^6.8.0","zod":"^4.1.13","yaml":"^2.7.1","react":"19.2.3","argon2":"^0.41.1","commander":"^14.0.2","ink-spinner":"^5.0.0","@noble/curves":"^2.0.1","ink-text-input":"^6.0.0","ink-select-input":"^6.0.0","@inquirer/prompts":"^8.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.27.0","@types/bun":"^1.3.4","typescript":"^5.8.3","@types/react":"^19.0.1","@0xsend/cws-client":"workspace:*","ink-testing-library":"^4.0.0","@0xsend/external-signing":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/cws-cli_0.1.0_1777160547249_0.04109984803201816","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@0xsend/cws-cli","version":"0.1.2","author":{"name":"Send Foundation"},"license":"MIT","_id":"@0xsend/cws-cli@0.1.2","maintainers":[{"name":"eho-send","email":"eho@send.it"},{"name":"0xbigboss","email":"0xbigboss@proton.me"},{"name":"allen-send","email":"allen@send.it"}],"homepage":"https://send.it","bugs":{"url":"https://github.com/0xsend/canton-monorepo/issues"},"bin":{"cws":"dist/cws.js"},"dist":{"shasum":"8118eedd186cbb13a8fe1c7066576484d753b5be","tarball":"https://registry.npmjs.org/@0xsend/cws-cli/-/cws-cli-0.1.2.tgz","fileCount":5,"integrity":"sha512-LUh/87A4yntIGB0v7igbTneme5H/DzJ7rWa7TYu++7QIGGIf+fAZIgm6Qemmj7Tc9erW3GNz63tqySHRcMb+6w==","signatures":[{"sig":"MEQCIFFISCu2qLYLD932i4zHCTxvMOYg6mK4l+VyclULWAOJAiBCeVjvSqnyy4J916wCzVHLUGnhjschN9jXe1Iln8kt3A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2090445},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"46acbbe70c39300ac90794357c36d0be3e4159dc","scripts":{"lint":"biome check .","test":"bun test src/__tests__","build":"node scripts/build.mjs","clean":"rm -rf dist","lint:fix":"biome check --write .","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd26a711-f8e6-4442-9ced-cfdf99f8f19e"}},"repository":{"url":"git+https://github.com/0xsend/canton-monorepo.git","type":"git","directory":"packages/cws-cli"},"_npmVersion":"11.13.0","description":"End-user Canton wallet CLI (TUI + scripted)","directories":{},"_nodeVersion":"22.15.0","dependencies":{"ink":"^6.8.0","zod":"^4.1.13","yaml":"^2.7.1","react":"19.2.3","argon2":"^0.41.1","commander":"^14.0.2","ink-spinner":"^5.0.0","@noble/curves":"^2.0.1","ink-text-input":"^6.0.0","ink-select-input":"^6.0.0","@inquirer/prompts":"^8.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.27.0","@types/bun":"^1.3.4","typescript":"^5.8.3","@types/react":"^19.0.1","@0xsend/cws-client":"workspace:*","ink-testing-library":"^4.0.0","@0xsend/external-signing":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/cws-cli_0.1.2_1777167266953_0.5787970816279389","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@0xsend/cws-cli","version":"0.1.3","author":{"name":"Send Foundation"},"license":"MIT","_id":"@0xsend/cws-cli@0.1.3","maintainers":[{"name":"eho-send","email":"eho@send.it"},{"name":"0xbigboss","email":"0xbigboss@proton.me"},{"name":"allen-send","email":"allen@send.it"}],"homepage":"https://send.it","bin":{"cws":"dist/cws.js"},"dist":{"shasum":"5e78c218cf7dc600702227f42038917b44cef4e0","tarball":"https://registry.npmjs.org/@0xsend/cws-cli/-/cws-cli-0.1.3.tgz","fileCount":5,"integrity":"sha512-obnx1rHMUw1oyM5YFcRZa1VbHY6ESml1FL4CK7HP+2Q5JX6iJ2wVZ6EjLcizOjZXr6DgIHeMut8FgkSreUaQWA==","signatures":[{"sig":"MEUCIAL4UwHUeAeLmiBueDSCbYOFQHx03Hm550p7SydzzvwEAiEAwJ7akc0pF852uFimNH/BNQE+gkGNKXcE1iTq655NYR8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2090392},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"066ce0ee5bceba88046bda63e18866ab045953ff","scripts":{"lint":"biome check .","test":"bun test src/__tests__","build":"node scripts/build.mjs","clean":"rm -rf dist","lint:fix":"biome check --write .","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd26a711-f8e6-4442-9ced-cfdf99f8f19e"}},"repository":{"url":"https://github.com/0xsend","type":"git"},"_npmVersion":"11.13.0","description":"End-user Canton wallet CLI (TUI + scripted)","directories":{},"_nodeVersion":"22.15.0","dependencies":{"ink":"^6.8.0","zod":"^4.1.13","yaml":"^2.7.1","react":"19.2.3","argon2":"^0.41.1","commander":"^14.0.2","ink-spinner":"^5.0.0","@noble/curves":"^2.0.1","ink-text-input":"^6.0.0","ink-select-input":"^6.0.0","@inquirer/prompts":"^8.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.27.0","@types/bun":"^1.3.4","typescript":"^5.8.3","@types/react":"^19.0.1","@0xsend/cws-client":"workspace:*","ink-testing-library":"^4.0.0","@0xsend/external-signing":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/cws-cli_0.1.3_1777168189360_0.4995217661466209","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@0xsend/cws-cli","version":"0.2.0","author":{"name":"Send Foundation"},"license":"MIT","_id":"@0xsend/cws-cli@0.2.0","maintainers":[{"name":"eho-send","email":"eho@send.it"},{"name":"0xbigboss","email":"0xbigboss@proton.me"},{"name":"allen-send","email":"allen@send.it"}],"homepage":"https://send.it","bin":{"cws":"dist/cws.js"},"dist":{"shasum":"bf6d0e66ccc9f10b2bbddd9e1b4e6c58dd10e883","tarball":"https://registry.npmjs.org/@0xsend/cws-cli/-/cws-cli-0.2.0.tgz","fileCount":5,"integrity":"sha512-jN0mKhrvMFN4//oqcKycGgCdCoAL2VvO3FCymUT7s/p2v4lY2TmRmKGpvxMrD7EUKd/JFUWrWyKYyoHcRuk3eQ==","signatures":[{"sig":"MEUCIQCZgRbaZFGF9fxkpWbyubYhxc2MfFGnt1nXcnniHr99/QIgfA64ArK1wSKoQ13n4WIGg2Yr4Ea6FfcmjQ/s959Lpgk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2095867},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"855b8660cf39def48cfaa78f24fa6f4a5939da73","scripts":{"lint":"biome check .","test":"bun test src/__tests__","build":"node scripts/build.mjs","clean":"rm -rf dist","lint:fix":"biome check --write .","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd26a711-f8e6-4442-9ced-cfdf99f8f19e"}},"repository":{"url":"https://github.com/0xsend","type":"git"},"_npmVersion":"11.13.0","description":"End-user Canton wallet CLI (TUI + scripted)","directories":{},"_nodeVersion":"22.15.0","dependencies":{"ink":"^6.8.0","zod":"^4.1.13","yaml":"^2.7.1","react":"19.2.3","argon2":"^0.41.1","commander":"^14.0.2","ink-spinner":"^5.0.0","@noble/curves":"^2.0.1","ink-text-input":"^6.0.0","ink-select-input":"^6.0.0","@inquirer/prompts":"^8.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.27.0","@types/bun":"^1.3.4","typescript":"^5.8.3","@types/react":"^19.0.1","@0xsend/cws-client":"workspace:*","ink-testing-library":"^4.0.0","@0xsend/external-signing":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/cws-cli_0.2.0_1777232837490_0.032379443776103356","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@0xsend/cws-cli","version":"0.3.0","author":{"name":"Send Foundation"},"license":"MIT","_id":"@0xsend/cws-cli@0.3.0","maintainers":[{"name":"eho-send","email":"eho@send.it"},{"name":"0xbigboss","email":"0xbigboss@proton.me"},{"name":"allen-send","email":"allen@send.it"}],"homepage":"https://send.it","bin":{"cws":"dist/cws.js"},"dist":{"shasum":"6cd3b0d369dad786a44f311b3ad67c71c99e8251","tarball":"https://registry.npmjs.org/@0xsend/cws-cli/-/cws-cli-0.3.0.tgz","fileCount":5,"integrity":"sha512-eLDus5mv3wOkaxTNniJIL+AztRYzZTpdT7hqkPQ9atlfh4k/j/vtmNOZy1KWRkTt/zOWlQOOmehY2DWyKjUA7Q==","signatures":[{"sig":"MEUCIFhak7afcxJIP6SaXO4KOY8SE1MqVGFcli1au012LYJjAiEA186fg5UKwZgOCvvxRcFLDbW6BvnItV20hI/NvxYlOok=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2098938},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"fad4412842eba42c86cd5e0bbfcf5e1a1504a05e","scripts":{"lint":"biome check .","test":"bun test src/__tests__","build":"node scripts/build.mjs","clean":"rm -rf dist","lint:fix":"biome check --write .","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd26a711-f8e6-4442-9ced-cfdf99f8f19e"}},"repository":{"url":"https://github.com/0xsend","type":"git"},"_npmVersion":"11.13.0","description":"End-user Canton wallet CLI (TUI + scripted)","directories":{},"_nodeVersion":"22.15.0","dependencies":{"ink":"^6.8.0","zod":"^4.1.13","yaml":"^2.7.1","react":"19.2.3","argon2":"^0.41.1","commander":"^14.0.2","ink-spinner":"^5.0.0","@noble/curves":"^2.0.1","ink-text-input":"^6.0.0","ink-select-input":"^6.0.0","@inquirer/prompts":"^8.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.27.0","@types/bun":"^1.3.4","typescript":"^5.8.3","@types/react":"^19.0.1","@0xsend/cws-client":"workspace:*","ink-testing-library":"^4.0.0","@0xsend/external-signing":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/cws-cli_0.3.0_1777247393019_0.5024067980625513","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@0xsend/cws-cli","version":"0.4.0","author":{"name":"Send Foundation"},"license":"MIT","_id":"@0xsend/cws-cli@0.4.0","maintainers":[{"name":"eho-send","email":"eho@send.it"},{"name":"0xbigboss","email":"0xbigboss@proton.me"},{"name":"allen-send","email":"allen@send.it"}],"homepage":"https://send.it","bin":{"cws":"dist/cws.js"},"dist":{"shasum":"b79e5a2ee312676f025f8033cf04fcff4e2ec95b","tarball":"https://registry.npmjs.org/@0xsend/cws-cli/-/cws-cli-0.4.0.tgz","fileCount":5,"integrity":"sha512-s7OMBtEa8M40XHw7pO1iDs+bPewEIJ7a8kGoh8Rz8PvRlhivM9YMzb/j34bkX3qBtLT90Tl4kFL1v/UhFd1EaQ==","signatures":[{"sig":"MEUCICj4X/8ZYWYW3xjHBXZYLBTtL+kV5rU4Ey2dq6phasCdAiEAsvKFZfbqR8qJFUBMwaLJojae9o/I7Pj95mDT9ZJksWk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2100847},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"ad90f5ddea61839d122c3181fbaf53eafb9a9099","scripts":{"lint":"biome check .","test":"bun test src/__tests__","build":"node scripts/build.mjs","clean":"rm -rf dist","lint:fix":"biome check --write .","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd26a711-f8e6-4442-9ced-cfdf99f8f19e"}},"repository":{"url":"https://github.com/0xsend","type":"git"},"_npmVersion":"11.13.0","description":"End-user Canton wallet CLI (TUI + scripted)","directories":{},"_nodeVersion":"22.15.0","dependencies":{"ink":"^6.8.0","zod":"^4.1.13","yaml":"^2.7.1","react":"19.2.3","argon2":"^0.41.1","commander":"^14.0.2","ink-spinner":"^5.0.0","@noble/curves":"^2.0.1","ink-text-input":"^6.0.0","ink-select-input":"^6.0.0","@inquirer/prompts":"^8.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.27.0","@types/bun":"^1.3.4","typescript":"^5.8.3","@types/react":"^19.0.1","@0xsend/cws-client":"workspace:*","ink-testing-library":"^4.0.0","@0xsend/external-signing":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/cws-cli_0.4.0_1777252270885_0.8281917451031602","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@0xsend/cws-cli","version":"0.4.1","author":{"name":"Send Foundation"},"license":"MIT","_id":"@0xsend/cws-cli@0.4.1","maintainers":[{"name":"eho-send","email":"eho@send.it"},{"name":"0xbigboss","email":"0xbigboss@proton.me"},{"name":"allen-send","email":"allen@send.it"}],"homepage":"https://send.it","bin":{"cws":"dist/cws.js"},"dist":{"shasum":"7614202dbc72141a1832c445298f29d9d175b216","tarball":"https://registry.npmjs.org/@0xsend/cws-cli/-/cws-cli-0.4.1.tgz","fileCount":5,"integrity":"sha512-St66fOGlH4lcZds0sB6TUTWzUYvw39PjYjgQLjP1Gse2Q/1i37+q/hUOUQEaQa0o7HiMU3p2w0YskfsBzWR49Q==","signatures":[{"sig":"MEYCIQC9YmgJlIhsW2CW6fByvQgQ33Eajh6ypY0wriSHbLC9NAIhAOXZJ7cVv9RDqVoj/H/+cgtUwpOXNsKi3rR7lhJSgmC8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2165087},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"cc8104a303aa5f4f0a32546699bee4ae850ac6b6","scripts":{"lint":"biome check .","test":"bun test src/__tests__","build":"node scripts/build.mjs","clean":"rm -rf dist","lint:fix":"biome check --write .","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd26a711-f8e6-4442-9ced-cfdf99f8f19e"}},"repository":{"url":"https://github.com/0xsend","type":"git"},"_npmVersion":"11.16.0","description":"End-user Canton wallet CLI (TUI + scripted)","directories":{},"_nodeVersion":"22.15.0","dependencies":{"ink":"^6.8.0","zod":"^4.1.13","yaml":"^2.7.1","react":"19.2.3","argon2":"^0.41.1","commander":"^14.0.2","ink-spinner":"^5.0.0","@noble/curves":"^2.0.1","ink-text-input":"^6.0.0","ink-select-input":"^6.0.0","@inquirer/prompts":"^8.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.27.0","@types/bun":"^1.3.4","typescript":"^5.8.3","@types/react":"^19.0.1","@0xsend/cws-client":"workspace:*","ink-testing-library":"^4.0.0","@0xsend/external-signing":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/cws-cli_0.4.1_1780085892659_0.16492679232317808","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@0xsend/cws-cli","version":"0.5.0","author":{"name":"Send Foundation"},"license":"MIT","_id":"@0xsend/cws-cli@0.5.0","maintainers":[{"name":"eho-send","email":"eho@send.it"},{"name":"alleneubank","email":"adeubank@gmail.com"},{"name":"allen-send","email":"allen@send.it"}],"homepage":"https://send.it","bin":{"cws":"dist/cws.js"},"dist":{"shasum":"c0fe0c285b5f35d190a3915ff6bcac4752a3f8c2","tarball":"https://registry.npmjs.org/@0xsend/cws-cli/-/cws-cli-0.5.0.tgz","fileCount":5,"integrity":"sha512-ifdI+o5HAVPEvbCzjCFY1NA/3NrtyppwbKt/co5lj0eOBzuoknj9Fc5smsMR7zaHYaGF2Y68Yd2JRewmTkfoBw==","signatures":[{"sig":"MEQCICZm8xAqSj/s/DrQqUdVjCaNNqseIvZaGxUmsv+AWJjoAiBizh6Vbkl49j46JgQFSn3wqC+XxpKA3gFpLzHbf6+v0Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2174347},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"c1e5cc9b5d5de6eb54febdbc064a8d03a2152580","scripts":{"lint":"biome check .","test":"bun test src/__tests__","build":"node scripts/build.mjs","clean":"rm -rf dist","lint:fix":"biome check --write .","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd26a711-f8e6-4442-9ced-cfdf99f8f19e"}},"repository":{"url":"https://github.com/0xsend","type":"git"},"_npmVersion":"11.18.0","description":"End-user Canton wallet CLI (TUI + scripted)","directories":{},"_nodeVersion":"22.15.0","dependencies":{"ink":"^6.8.0","zod":"^4.1.13","yaml":"^2.7.1","react":"19.2.3","argon2":"^0.41.1","commander":"^14.0.2","ink-spinner":"^5.0.0","@noble/curves":"^2.0.1","ink-text-input":"^6.0.0","ink-select-input":"^6.0.0","@inquirer/prompts":"^8.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.27.0","@types/bun":"^1.3.4","typescript":"^5.8.3","@types/react":"^19.0.1","@0xsend/cws-client":"workspace:*","ink-testing-library":"^4.0.0","@0xsend/external-signing":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/cws-cli_0.5.0_1784304897172_0.6575798925454295","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@0xsend/cws-cli","version":"0.6.0","author":{"name":"Send Foundation"},"license":"MIT","_id":"@0xsend/cws-cli@0.6.0","maintainers":[{"name":"eho-send","email":"eho@send.it"},{"name":"alleneubank","email":"adeubank@gmail.com"},{"name":"allen-send","email":"allen@send.it"}],"homepage":"https://send.it","bin":{"cws":"dist/cws.js"},"dist":{"shasum":"ba033aa15a1da658967e9ef1cabec29e033c0941","tarball":"https://registry.npmjs.org/@0xsend/cws-cli/-/cws-cli-0.6.0.tgz","fileCount":5,"integrity":"sha512-nnyFm/z9aAiV+2c5JNLmadOu2WJ3VA5pHmTr4OI8SJzgT8M7fDn8HbMebbxIxHQS5rRmmZGhJ93MGYsYDD/0lQ==","signatures":[{"sig":"MEYCIQCKGxee6XnqkUTHjljlv6YjpCDPDiKYutO71C/BCCJ0MwIhAKamml0fI13y5XdBm1zGtRAQXQM7TtKXwpDjrJgJ9y1H","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2237860},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"722b6e8ef5e5a5fe4e111e0f2832530c87161506","scripts":{"lint":"biome check .","test":"bun test src/__tests__","build":"node scripts/build.mjs","clean":"rm -rf dist","lint:fix":"biome check --write .","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd26a711-f8e6-4442-9ced-cfdf99f8f19e"}},"repository":{"url":"https://github.com/0xsend","type":"git"},"_npmVersion":"11.19.0","description":"End-user Canton wallet CLI (TUI + scripted)","directories":{},"_nodeVersion":"22.15.0","dependencies":{"ink":"^6.8.0","zod":"^4.1.13","yaml":"^2.7.1","react":"19.2.3","argon2":"^0.41.1","commander":"^14.0.2","ink-spinner":"^5.0.0","@noble/curves":"^2.0.1","ink-text-input":"^6.0.0","ink-select-input":"^6.0.0","@inquirer/prompts":"^8.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.27.0","@types/bun":"^1.3.4","typescript":"^5.8.3","@types/react":"^19.0.1","@0xsend/cws-client":"workspace:*","ink-testing-library":"^4.0.0","@0xsend/external-signing":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/cws-cli_0.6.0_1787425619877_0.21943052868463298","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@0xsend/cws-cli","version":"0.6.1","description":"End-user Canton wallet CLI (TUI + scripted)","type":"module","license":"MIT","author":{"name":"Send Foundation"},"homepage":"https://send.it","repository":{"type":"git","url":"https://github.com/0xsend"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"scripts":{"build":"node scripts/build.mjs","test":"bun test src/__tests__","typecheck":"tsc --noEmit","lint":"biome check .","lint:fix":"biome check --write .","clean":"rm -rf dist"},"dependencies":{"@inquirer/prompts":"^8.2.0","@noble/curves":"^2.0.1","argon2":"^0.41.1","commander":"^14.0.2","ink":"^6.8.0","ink-select-input":"^6.0.0","ink-spinner":"^5.0.0","ink-text-input":"^6.0.0","react":"19.2.3","yaml":"^2.7.1","zod":"^4.1.13"},"devDependencies":{"@0xsend/cws-client":"workspace:*","@0xsend/external-signing":"workspace:*","@types/bun":"^1.3.4","@types/react":"^19.0.1","esbuild":"^0.27.0","ink-testing-library":"^4.0.0","typescript":"^5.8.3"},"engines":{"node":">=20.0.0"},"bin":{"cws":"dist/cws.js"},"gitHead":"97e307d35d208c114a194de488e2e7eee597cf7b","_id":"@0xsend/cws-cli@0.6.1","_nodeVersion":"22.15.0","_npmVersion":"11.19.1","dist":{"integrity":"sha512-vY2devVcUM3JFfhHZiM3eHKDE/Mc2o5v6Af277t6qIKdKqozaPy6K2MQuT8cS0vE2XRVhQhb3aLXX9fSRipvXg==","shasum":"e704d9d74ae223dd75d0bd1ab28c1cd9240b68ed","tarball":"https://registry.npmjs.org/@0xsend/cws-cli/-/cws-cli-0.6.1.tgz","fileCount":5,"unpackedSize":2240137,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICZGNbp0qFU8BwESBrLgy9Ys6cQRfy/zT6c0/zEW3WheAiEAqv5GSi4gnmQ/IVLHsBQLipkL0rd4x/fNari1jpV03mY="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd26a711-f8e6-4442-9ced-cfdf99f8f19e"}},"directories":{},"maintainers":[{"name":"eho-send","email":"eho@send.it"},{"name":"alleneubank","email":"adeubank@gmail.com"},{"name":"allen-send","email":"allen@send.it"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cws-cli_0.6.1_1788426486966_0.8447171404725604"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-25T23:42:27.135Z","modified":"2026-09-03T09:08:07.337Z","0.1.0":"2026-04-25T23:42:27.428Z","0.1.2":"2026-04-26T01:34:27.157Z","0.1.3":"2026-04-26T01:49:49.533Z","0.2.0":"2026-04-26T19:47:17.698Z","0.3.0":"2026-04-26T23:49:53.215Z","0.4.0":"2026-04-27T01:11:11.076Z","0.4.1":"2026-05-29T20:18:12.834Z","0.5.0":"2026-07-17T16:14:57.328Z","0.6.0":"2026-08-22T19:07:00.084Z","0.6.1":"2026-09-03T09:08:07.150Z"},"author":{"name":"Send Foundation"},"license":"MIT","homepage":"https://send.it","repository":{"type":"git","url":"https://github.com/0xsend"},"description":"End-user Canton wallet CLI (TUI + scripted)","maintainers":[{"name":"eho-send","email":"eho@send.it"},{"name":"alleneubank","email":"adeubank@gmail.com"},{"name":"allen-send","email":"allen@send.it"}],"readme":"# @0xsend/cws-cli\n\nEnd-user Canton wallet CLI (`cws`) with both an interactive TUI and a\nscripted subcommand mode. Ships an encrypted keystore, profile-based\nmulti-identity support, and mainnet typed-token confirmation for every\nmutation.\n\n## Install\n\n```bash\nnpm install -g @0xsend/cws-cli\n# or: pnpm add -g, yarn global add, bun install -g\ncws --help\n```\n\nRequires Node.js 20 or newer. The published bundle is fully self-contained — no extra `@0xsend/*` packages need to be installed alongside.\n\n## First run\n\nCreate a profile. The wizard walks you through the choices:\n\n```bash\ncws profile create work\n```\n\nThe prompts in order:\n\n1. **Network** — `mainnet` | `testnet` | `localnet`. Selects the Canton\n   deployment and (for mainnet/testnet) the default cws-api base URL and\n   Keycloak realm. Localnet requires you to supply `baseUrl` and\n   `keycloak.url` explicitly.\n2. **API key** — paste the cws-api key for the target realm. Stored inside\n   the encrypted keystore, never on disk in plaintext.\n3. **Signing key source** — one of:\n   - `generate` — new P-256 keypair (default; secp256k1 also supported),\n     private key held only in the keystore.\n   - `import` — read a PEM/DER file from disk.\n   - `paste` — paste hex/base64 material at the prompt.\n4. **Password** — encrypts the keystore with Argon2id + AES-256-GCM. You will\n   be asked for it every time a command needs to sign (no session cache in\n   v1).\n\nProfiles live under `$WALLET_CONFIG` (default `~/.config/wallet-cli`).\n\n## Commands\n\n```\ncws\n├── health                                    check cws-api connectivity\n├── profile\n│   ├── create <name>\n│   ├── list\n│   ├── import <name> --from <path> --network <mainnet|testnet|localnet>\n│   └── remove <name>\n├── multisig\n│   ├── list                                  list multisigs visible to the active profile\n│   ├── show <id>                             show multisig details\n│   ├── pending                               list pending items across all visible multisigs\n│   ├── create                                create a new multisig\n│   ├── queue                                 propose new multisig transactions (prepare + queue + self-sign)\n│   │   ├── send <multisigPartyId> <to> <amount> <instrument> [--description <text>]\n│   │   ├── accept <transferInstructionId> --multisig <partyId>\n│   │   ├── preapproval grant <multisigPartyId> <providerPartyId> [--expires-at <ms>]\n│   │   ├── preapproval revoke <multisigPartyId> <preapprovalContractId>\n│   │   ├── automerge enable <multisigPartyId> --provider <partyId> --instrument <id>\n│   │   ├── automerge disable <multisigPartyId> <delegationContractId>\n│   │   └── automerge revoke <multisigPartyId> <delegationContractId>\n│   ├── transaction                           operate on existing queued multisig transactions\n│   │   ├── list --multisig <partyId> --queue [--status <status>] [--limit <n>]\n│   │   ├── list --multisig <partyId> --offers [--direction <incoming|outgoing|all>]\n│   │   ├── show <transactionId>\n│   │   ├── history --multisig <partyId> [--status <status>] [--limit <n>]\n│   │   ├── approve <transactionId>\n│   │   ├── reject <transactionId>\n│   │   ├── cancel <transactionId>\n│   │   └── submit <transactionId>            re-submit a fully-signed queued transaction\n│   └── topology\n│       ├── list --multisig <id>\n│       ├── show <id> --multisig <multisigId>\n│       ├── propose add-member <multisigPartyId> <party>\n│       ├── propose remove-member <multisigPartyId> <party>\n│       ├── propose set-threshold <multisigPartyId> <from> <to>\n│       ├── approve <id> --multisig <multisigId>\n│       └── reject <id> --multisig <multisigId>\n├── transaction                               single-signer (1/1) operations — partyId derived from keystore\n│   ├── list --offers [--direction <incoming|outgoing|all>]\n│   ├── send <to> <amount> <instrument> [--description <text>]\n│   ├── accept <transferInstructionId>\n│   ├── preapproval grant <providerPartyId> [--expires-at <ms>]\n│   ├── preapproval revoke <preapprovalContractId>\n│   ├── automerge enable --provider <partyId> --instrument <id>\n│   ├── automerge disable <delegationContractId>\n│   └── automerge revoke <delegationContractId>\n├── instruments\n│   └── list [--json]                         list available instruments\n└── holdings\n    └── list <partyId> [--instrument <id>] [--json]   list holdings for a party\n```\n\nAll commands accept `--json` for machine-readable output and `--profile\n<name>` to override `WALLET_PROFILE`.\n\n### Multisig vs single-signer\n\n`multisig queue *` commands take an explicit `<multisigPartyId>` and route\nthe prepared transaction through the queue (threshold signers approve, then\n`multisig transaction submit` or auto-submit when threshold is met).\n\n`transaction *` commands are for 1/1 wallets. The party id is derived\nautomatically from the active profile's keystore — no party argument is\nneeded. The cws-api submits the transaction directly upon signing.\n\n### Health\n\n```bash\ncws health\n```\n\n### Profile\n\n```bash\ncws profile list\ncws profile create <name>\ncws profile import <name> --from <path> --network <mainnet|testnet|localnet>\ncws profile remove <name>\n```\n\n### Multisig — party-level\n\n```bash\ncws multisig list\ncws multisig show <id>\ncws multisig pending\ncws multisig create\n```\n\n### Multisig — propose new queued tx (`queue`)\n\n```bash\ncws multisig queue send <multisigPartyId> <to> <amount> <instrument> [--description <text>]\ncws multisig queue accept <transferInstructionId> --multisig <partyId>\ncws multisig queue preapproval grant <multisigPartyId> <providerPartyId> [--expires-at <ms>]\ncws multisig queue preapproval revoke <multisigPartyId> <preapprovalContractId>\ncws multisig queue automerge enable <multisigPartyId> --provider <partyId> --instrument <id>\ncws multisig queue automerge disable <multisigPartyId> <delegationContractId>\ncws multisig queue automerge revoke <multisigPartyId> <delegationContractId>\n```\n\n### Multisig — act on queued tx (`transaction`)\n\n`list` requires exactly one of `--queue` (queued multisig transactions) or\n`--offers` (incoming TransferInstructions). Pass `--direction` to filter\noffers by `incoming` (default), `outgoing`, or `all`.\n\n```bash\ncws multisig transaction list --multisig <partyId> --queue [--status <status>] [--limit <n>]\ncws multisig transaction list --multisig <partyId> --offers [--direction <incoming|outgoing|all>]\ncws multisig transaction show <transactionId>\ncws multisig transaction history --multisig <partyId> [--status <status>] [--limit <n>]\ncws multisig transaction approve <transactionId>\ncws multisig transaction reject <transactionId>\ncws multisig transaction cancel <transactionId>\ncws multisig transaction submit <transactionId>   # re-submit a fully-signed queued transaction\n```\n\n### Multisig — topology\n\n```bash\ncws multisig topology list --multisig <id>\ncws multisig topology show <id> --multisig <multisigId>\ncws multisig topology propose add-member <multisigPartyId> <party>\ncws multisig topology propose remove-member <multisigPartyId> <party>\ncws multisig topology propose set-threshold <multisigPartyId> <from> <to>\ncws multisig topology approve <id> --multisig <multisigId>\ncws multisig topology reject <id> --multisig <multisigId>\n```\n\n### Single-signer transaction (1/1 wallets)\n\n`list --offers` discovers TransferInstruction contract ids you can act on\nwith `accept` / `reject` / `withdraw`. Default direction is `incoming`.\n\n```bash\ncws transaction list --offers [--direction <incoming|outgoing|all>]\ncws transaction send <to> <amount> <instrument> [--description <text>]\ncws transaction accept <transferInstructionId>\ncws transaction preapproval grant <providerPartyId> [--expires-at <ms>]\ncws transaction preapproval revoke <preapprovalContractId>\ncws transaction automerge enable --provider <partyId> --instrument <id>\ncws transaction automerge disable <delegationContractId>\ncws transaction automerge revoke <delegationContractId>\n```\n\n### Instruments\n\n```bash\ncws instruments list [--json]   # list available instruments across the active network\n```\n\n### Holdings\n\n```bash\ncws holdings list <partyId> [--instrument <id>] [--json]   # list holdings for a party\n```\n\n## Environment variables\n\n- `WALLET_CONFIG` — root directory for profiles (default `~/.config/wallet-cli`).\n- `WALLET_PROFILE` — profile name used when `--profile` is not passed.\n- `WALLET_PASSWORD` — keystore password. **Security warning**: any process on\n  the host can read the environment of another process owned by the same\n  user; prefer the interactive prompt unless you are in a controlled\n  non-interactive setting (CI runners with secret-backed env, etc.).\n\n`cws profile onboard <name>` additionally reads the following when set,\nskipping the matching inquirer prompt:\n\n- `WALLET_NETWORK` — `localnet` | `testnet` | `mainnet`.\n- `WALLET_USERNAME` — Keycloak username the profile will authenticate as.\n- `WALLET_ONBOARDING_SECRET` — one-shot onboarding secret minted by an\n  admin via `POST /onboarding-secrets`.\n- `--yes` additionally skips the prepared-submission confirm so the flow\n  runs end-to-end without a TTY. The same security caveat as\n  `WALLET_PASSWORD` applies; intended for test scripts and CI.\n\n`--password <value>` is accepted on the argv but prints a warning on every\ninvocation because `ps(1)` leaks argv to other users on multi-user hosts.\n\n## Security model\n\n- Single encrypted keystore per profile. The keystore envelope contains both\n  the cws-api API key and the signing-key material (P-256 by default;\n  secp256k1 supported).\n- KDF: Argon2id with per-profile salt. Cipher: AES-256-GCM (authenticated\n  encryption; tampering fails decryption instead of yielding silent\n  garbage).\n- Interactive mainnet mutations require typed-token confirmation: the\n  operator types the first 6 characters of the multisig party id. `--yes`\n  short-circuits typed-token confirmation on every network, including\n  mainnet — intended for CI and headless automation. The same security\n  caveat as `WALLET_PASSWORD` applies (env/argv visibility).\n- `--password` on argv emits a warning. Argv is visible to `ps`.\n- No session cache in v1. Every command that signs re-prompts for the\n  password.\n- Password zeroing is best-effort: JavaScript strings are immutable, so only\n  Buffer copies of the password inside `keystore.ts` are actively zeroed.\n\n## Exit codes\n\nCategories map to exit codes via `EXIT_CODES` in `src/core/output.ts`:\n\n| Category    | Code |\n|-------------|------|\n| unknown     | 1    |\n| auth        | 2    |\n| cancelled   | 0    |\n| config      | 3    |\n| io          | 4    |\n| network     | 5    |\n| safety      | 6    |\n| signing     | 7    |\n| validation  | 8    |\n\n`cancelled` deliberately exits `0` so shell pipelines treat user-aborted\nconfirmations as a successful no-op; the reason still surfaces in stderr.\n\n## Troubleshooting\n\n- **Unlock fails with decryption error** — wrong password. There is no\n  recovery path; if the password is lost, remove the profile and re-import\n  the signing key.\n- **Keycloak 401 / 403** — API key expired or bound to the wrong realm.\n  Re-provision from the cws-api admin and `cws profile import` a\n  refreshed config, or edit the profile's encrypted keystore via the\n  `profile create` flow.\n- **Localnet cannot reach cws-api** — localnet profiles require both\n  `baseUrl` and `keycloak.url` to be set explicitly; the defaults only cover\n  mainnet and testnet. Check the values with `cws profile list --json`.\n\n## TUI tour\n\n`cws` (no args) or `cws ui` launches the terminal UI:\n\n```\nprofile-picker  →  unlock  →  primary dashboard  ⇄  account picker  ⇄  multisig dashboard\n```\n\nAfter unlock, the TUI lands on the active profile's primary wallet account and\nattempts to show holdings inline. Multisigs are available from the account\npicker and are treated as switchable first-party accounts rather than a\nseparate mode. If cws-api cannot load holdings because its Ledger API\ndependency is unavailable, the dashboard stays usable and explains the\nlimitation. Press `H` for the full holdings view.\n\nPrimary-account dashboard hotkeys:\n\n- `s` — send transfer\n- `A` — accept transfer\n- `P` — manage transfer preapprovals\n- `M` — manage automerge delegations\n- `i` — browse instruments\n- `H` — open full holdings view\n- `x` / `Esc` — switch accounts\n- `q` — quit (suppressed while a text field has focus; `Ctrl-C` always quits)\n\nMultisig dashboard hotkeys:\n\n- `s` — send transfer proposal\n- `p` — propose topology change\n- `a` — approve pending item\n- `r` — reject pending item\n- `i` — browse instruments\n- `H` — open full holdings view\n- `x` / `Esc` — switch accounts\n- `q` — quit (suppressed while a text field has focus; `Ctrl-C` always quits)\n\nMainnet safety: in interactive use, before any mutation submits, the TUI\nasks you to type the first 6 characters of the multisig party id. `--yes`\nshort-circuits this prompt on every network — automation paths are\nresponsible for supplying it deliberately.\n\n## Links\n\n- Source: https://github.com/0xsend/canton-monorepo/tree/dev/packages/cws-cli\n- Website: https://send.it\n\n## License\n\nMIT\n","readmeFilename":"README.md"}