用途:当用户已有使用旧密码存储方式的 nansen-cli 钱包,希望迁移到新的安全钥匙串流程时使用。触发场景包括:密码存放在 ~/.nansen/.env、.env 或 memory.md;出现“Password loaded from insecure .credentials file”警告;用户要求“保护钱包”或“迁移到钥匙串”;钱包创建于钥匙串更新之前。
主要能力:检测当前密码存储状态,区分四种迁移路径(A:密码在 ~/.nansen/.env;B:密码在 .credentials 文件;C:密码仅在 NANSEN_WALLET_PASSWORD 环境变量;D:密码完全丢失),执行迁移并验证钥匙串密码能否真正解密钱包,最后清理不安全文件。
使用方式:先检测,运行 nansen wallet list 确认钱包存在,检查 ~/.nansen/.env 与 ~/.nansen/wallets/.credentials,并用 nansen wallet export default 判断密码来源。迁移时,Path A 需在同一 shell 中执行 source ~/.nansen/.env 2>/dev/null && nansen wallet secure;Path B 直接运行 nansen wallet secure;Path C 运行 nansen wallet secure 持久化环境变量密码。迁移后必须验证:unset NANSEN_WALLET_PASSWORD 后运行 nansen wallet export default,成功导出私钥才证明迁移有效。若提示 Incorrect password,运行 nansen wallet forget-password 后用正确密码重试。清理不安全文件:rm -f ~/.nansen/.env。移除持久化密码可运行 nansen wallet forget-password。
适用场景:容器、CI 等无法访问钥匙串的环境,或用户从旧技能迁移钱包。
限制与规则:密码无法恢复(AES-256-GCM 加密且不存储可恢复副本);Path D 只能创建新钱包并转移可访问资金。代理不得生成密码、不得将密码存入文件/日志/对话、不得使用 --human 标志;读取 ~/.nansen/.env 须经用户授权且不得回显。wallet show 不加载密码,不能用于验证。钥匙串不可用时 nansen wallet secure 会说明并建议替代方案。