@cryptocadet/cli

中文文档
0.3.0发布于 2026/11/01UNLICENSEDES Module构建来源已验证

CryptoCadet v4客户端包:代理热钱包签名者+本地策略引擎(Base/USDC)。

中文使用文档
文档目录8 节
  1. 安装
  2. 承载保证
  3. 信任模型和爆炸半径
  4. 锁的决定
  5. 表面
  6. 两个秘密,两个钥匙链条目
  7. 磁盘布局— ~/.cryptocadet/
  8. 构建/测试

@cryptocadet/cli -本地签名者+策略引擎(v4指令01)

CryptoCadet v4的买方支出组件。持有 专用代理热 钱包 对于有界浮点数,强制a 当地的政策 随着 唯一的 支出 控制(没有智能账户,没有链上警告执行者),并签署ERC-20付款 基地. 用户的 主钱包密钥从未进入此包 在任何代码路径中。

这是CLIENT包。的cryptocadet 服务器不持有密钥,并且永远不能 导入该模块。

安装

macOS:      brew install thetechjd/cryptocadet-cli/cryptocadet
Linux:      curl -fsSL https://cryptocadet.app/install.sh | sh
Node (any): npm i -g @cryptocadet/cli

Then:       cryptocadet init

brew和curl工件是自包含的二进制文件(嵌入了Node 24)——没有节点, npm,或 node_modules 在用户的机器上。npm通道需要Node≥22.5(内置) node:sqlite). Windows: 4.0版本使用npm通道。curl安装程序为 install.sh 在回购根(从 https://cryptocadet.app/install.sh); 构建脚本,Homebrew 公式,以及发布清单 包装/.

承载保证

每个签署决定都通过了 evaluate() ——纯粹的, 同步的, fail-closed (任何错误/缺少字段/不可解析的金额⇒DENY)。有 是 一个 签名呼叫站点为座席支付路径,并对其进行了门控 gate.allow === true:

唯一的其他事务签名路径是 sweep - - - 仅限人类撤销,从未在特工运输上登记。

信任模型和爆炸半径

被分离的签名者将代理密钥从 操作系统的钥匙链 (一个操作系统 授权),并且只在会话的进程内存中保存明文-永远不会 在磁盘上。任何可以在进程运行时读取其内存的程序都可以获得代理 关键。 这就是为什么浮动是有界的:爆炸半径是浮动,而不是主要的 钱包。 从主钱包充值永远是人类的行为;没有什么会自动耗尽它。

锁的决定

  • 网络: 仅限基地(8453主网/ 84532 Sepolia)。 资产: USDC默认,其他 根据本地允许列表的erc -20。 从来没有原生代币支出。
  • 转账收费令牌:在allowlist时间被拒绝 (edit_allowlist 拒绝 他们; evaluate() 拒绝他们作为担保)。解决方案 难度。
  • 订阅楼: 可使用的= balance − subscriptionReserve. 按支付 可能永远不会越过保护区(evaluate() 步骤6)。
  • pay 接受服务器发布的 quoteId 只有 -从来没有一个原始的收件人/金额。一个 有毒的“支付0xattack”指令没有引用,而且是伪造的引用 收件人允许列表失败。
  • 取消= rotate + sweep. 扫描是 balance-discovery-driven (入站 传输日志扫描),因此被遗忘的长尾令牌也会被清除;天然气是 排最后。

表面

客户端是一个二进制(cryptocadet、别名 ccx)同时担任两个角色-一个帐户可以 同时做买家和卖家。命令按两个轴分组:local-vs-remote状态和 agent-exposed-vs-human-only。

面向agent的MCP(准确地说是四个动词) AGENT_TOOL_NAMES): check_balance, quote_payment, pay, dry_run. 《连线》杂志在 runtime.ts 通过 buildAgentTools 只有; 测试/ command-surface.test.ts 证明两个曲面是不相交的。

本地状态-仅限人工(密钥+策略,永远不会离开机器): init, wallet:show, policy:show, policy:set (帽/储备/升级), allowlist:add/ allowlist:remove (令牌+收件人), topup:request (人工审批,无自动排水) checkout (支付由商户提供的签名报价-见下文), rotate (--and-sweep --to), sweep --to <addr>, reserve:check.

checkout --quote-json <json> | --quote-file <path> [--allowlist-recipient] [--approve|--yes] -人类一次性支付动词,用于商家结账流程(例如主机工具充值) 贷方余额)。商人开出了一份报价 自己的 服务器账户,所以买方 不能通过id (GET /v4/quotes/:id account-scoped);相反,商人 举手示意 SignedQuote 这个动词通过 相同的 PaymentSigner.pay() 代理传输使用-根据 在单次广播之前,固定了pubkey并根据本地政策重新检查了每个字段, 所以报价的传输不需要被信任。 --allowlist-recipient 添加引号 首先支付给接收者allowlist(失败关闭策略不发送); --approve 确认超出阈值(升级)的带外报价。下面是引用自 --quote-json, --quote-file,或管道stdin。

远程状态服务器postgres通过认证API(卖方/买方,无关键风险): login/logout, product:list|create|update|disable, payout:set, subs:list|create|cancel, history.

mcp:serve [--detach|--stop|--status] —RDK分离模式:PID文件下 ~/.cryptocadet,钥匙链解锁分离启动,清洁停止/状态。

两个秘密,两个钥匙链条目

这个 代理钱包密钥 (keychainRef)及 服务器证书 (serverAuthRef, API密钥或JWT)是不同的秘密,具有不同的爆炸半径和驻留位置 单独的 OS-keychain条目。服务器凭证永远不会写入明文dotfile。 重/原生/可选深度(例如: keytar)安装 首次使用时 通过 requireDep,而不是在包安装时。

磁盘布局— ~/.cryptocadet/

agent.key.enc (AES-256-GCM, OS密钥链中的数据密钥 policy.json (独家 执行)。 ledger.sqlite (幂等+ pending-tx)· config.json (非机密的)。

构建/测试

pnpm install
pnpm typecheck     # tsc --noEmit, strict
pnpm test          # vitest — adversarial diagnostics 1–14
pnpm build         # emits dist/, bin: cryptocadet

要求节点≥22.5(内置) node:sqlite). 没有本地模块;操作系统密钥链为 达到通过 keytar 如果存在,则平台CLI (secret-tool/security)。

版本与发布记录

@cryptocadet/cli 共发布 8 个版本,首次发布于 2026/07/08;过去 12 个月发布了 8 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.3.0latest2026/11/012 天前
0.2.12026/07/233 个月前
0.2.02026/07/223 个月前
0.1.42026/07/213 个月前
0.1.32026/07/103 个月前
0.1.22026/07/093 个月前

关于 @cryptocadet/cli 的常见问题

@cryptocadet/cli 是什么?

CryptoCadet v4客户端包:代理热钱包签名者+本地策略引擎(Base/USDC)。

如何安装 @cryptocadet/cli?

在项目目录运行 npm install @cryptocadet/cli,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 ccx、cryptocadet,可以用 npx ccx 直接运行。

@cryptocadet/cli 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/cryptocadet__cli 是否存在。

@cryptocadet/cli 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@cryptocadet/cli 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22.5.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@cryptocadet/cli 可以商用吗?

@cryptocadet/cli 使用 UNLICENSED 许可。作者声明为 UNLICENSED,即不授予公开使用许可(与公共领域的 Unlicense 不同)。使用前需获得作者授权。以上为概括,不构成法律意见,请以许可原文为准。

@cryptocadet/cli 还在维护吗?

最新版本 0.3.0 发布于 2026/11/01(2 天前);至今共发布 8 个版本,其中过去 12 个月发布了 8 个;首次发布于 2026/07/08。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。