钱包与密钥存储
创建/导入钱包、管理账户,以及安全充值地址。
Seashail 的设计确保智能体进程永远不会收到密钥材料。
钱包类型
生成钱包
生成钱包在 Seashail 内部创建,使用沙米尔秘密分享(2-of-3)进行保护:
- 密钥分片 1:使用存储在
config_dir中的机器密钥加密 - 密钥分片 2:默认使用机器密钥加密(方便上手),或在密码短语下重新加密以实现可移植性(可选启用)
- 密钥分片 3:在明确的恢复/导出操作期间一次性显示作为离线备份,Seashail 不存储
正常操作从密钥分片 1 + 2 重建,完成签名后立即从内存中清零密钥材料。
导入钱包
导入的私钥/助记词使用 AES-256-GCM 静态加密,加密密钥由你的密码短语派生(Argon2id + HKDF 子密钥)。
密码短语会话
为了使自动化可行,Seashail 将密码短语派生的密钥缓存在内存中,持续时间可配置(passphrase_session_seconds)。
无人值守环境可以选择通过环境变量提供密码短语:
SEASHAIL_PASSPHRASE
这在设计上安全性较低(明文在 Seashail 控制范围之外)。只有在了解权衡的情况下才使用。
创建与导入钱包
创建生成钱包(沙米尔秘密分享 2-of-3):
create_wallet(通过 MCP 交互确认提示输入密码短语)
导入现有钱包:
import_wallet(通过 MCP 交互确认提示输入密钥)
注意事项:
- 不要将
secret作为工具参数传递。Seashail 在设计上会拒绝它,因为工具参数经常出现在智能体日志中。 - 导入的私钥需要
private_key_chain(evm或solana)。
管理钱包与账户
常用工作流:
list_wallets查看已有内容set_active_wallet选择后续工具调用的默认钱包/账户add_account添加另一个 BIP-44 账户索引(生成钱包和助记词钱包)get_wallet_info查看钱包的地址
充值(存款地址)
使用:
get_deposit_info
返回指定 wallet / account_index 在所选 chain 上的存款地址。
示例:
{ "chain": "solana", "token": "usdc" }{ "chain": "base", "token": "native" }备份与轮换(仅限生成钱包)
生成钱包可以选择启用可移植性/恢复功能,并获得一个一次性显示的离线备份密钥分片:
export_shares(轮换密钥分片并显示一次性密钥分片 3;需要密码短语会话)rotate_shares(轮换密钥分片并显示一次性密钥分片 3;需要密码短语会话)
相关工具
list_wallets、get_wallet_info、set_active_wallet、add_accountcreate_wallet、import_walletget_deposit_infoexport_shares、rotate_shares