wallet-cli import keystore¶
从 Web3 keystore 文件导入账户。仅支持交互式。
注意:这里没有任何 stdin 选项。master password 和 keystore 文件自身的密码只能通过隐藏的 TTY 提示输入——文件密码同样属于敏感密钥材料。
用法¶
wallet-cli import keystore <path> [--label <name>]
说明¶
从标准的 Web3 keystore JSON 导入单个账户——即 TronLink 导出的格式,也是 backup --keystore 写出的格式——并用你的 master password 加密保存。导入的钱包会成为当前账户。
一个 keystore 只保存一个私钥,因此得到的账户没有 seed,也无法从中派生任何东西,与 import private-key 完全一样。它的 type 记为 privateKey。
这里涉及两个相互独立的密码:master password 用于加密本地账户,keystore 密码用于解密导入文件。 CLI 会先读取文件并完成结构检查,再依次提示输入这两个密码,因此路径错误时不会要求输入密码。
没有 TTY 时,命令会以 tty_required 失败,退出码为 2,而且这项检查最先执行,排在读文件之前。在非交互环境中,无论路径正确与否,每次调用都会以同样的方式失败;上面"先读文件再要密码"的顺序只在你有终端时才成立。
导入绝不会覆盖已有账户。重复导入同一把密钥是幂等的(返回 status: "existing",并选中那个账户);如果导入的密钥所对应的地址已经由另一种类型的账户持有——HD 种子派生出的地址、仅观察账户或 Ledger 账户的地址——则会在该地址上新增一个独立的 privateKey 账户,而不是替换原有的那个。参见 import private-key——密钥解密之后,本命令与它完全一致。
选项¶
| 选项 | 说明 |
|---|---|
<path> |
必填。 keystore JSON 文件的路径 |
--label <string> |
便于识别的唯一账户标签,1–64 个字符;省略则自动生成 |
此外还有全局选项。
示例¶
wallet-cli import keystore ./tronlink-export.json --label imported
? Master password (hidden):
? Keystore file password (hidden):
✅ Imported wallet "imported"
Account ID wlt_7h2k9m1a
Type private key
TRON address TPBivseBCFmG8AEL38DJ4hxrFMQteENxDz
EVM address 0x90F79bf6EB2c4f870365E785982E1f101E93b906
Active yes
⚠️ The keystore password was read from hidden input and was not printed.
wallet-cli import keystore ./tronlink-export.json --label imported -o json
? Master password (hidden):
? Keystore file password (hidden):
{"schema":"wallet-cli.result.v1","success":true,"command":"import.keystore","data":{"status":"created","accountId":"wlt_7h2k9m1a","label":"imported","type":"privateKey","index":null,"active":true,"addresses":{"tron":"TPBivseBCFmG8AEL38DJ4hxrFMQteENxDz","evm":"0x90F79bf6EB2c4f870365E785982E1f101E93b906"},"derivationPath":null},"meta":{"durationMs":44,"warnings":[]}}
输出¶
data 携带导入的账户——只有地址,绝不含任何密钥。本地命令——没有 chain 块。
| 字段 | 类型 | 含义 |
|---|---|---|
status |
string | "created";若同一把密钥此前已存在,则为 "existing"(并选中那个账户) |
accountId |
string | 稳定的账户 id |
label |
string | 账户标签 |
type |
string | "privateKey"(独立账户,没有种子) |
index |
number | null | 非 HD 账户,恒为 null |
active |
boolean | 是否成为当前账户 |
addresses |
object | 导入密钥的两种编码:tron(base58)和 evm(EIP-55) |
derivationPath |
null | Web3 keystore 只装一把原始密钥,没有派生路径 |
退出码¶
0 导入成功 · 1 执行失败(wrong_keystore_password;auth_failed;io_error) · 2 用法错误(tty_required——没有可用于交互输入的 TTY,此项先于其他一切检查;keystore_not_found——文件不存在;invalid_keystore——不是合法的 keystore JSON;invalid_value——标签重复或非法)。
另请参见¶
backup · import private-key · delete · machine-interface → 敏感信息处理