For the complete documentation index, see llms.txt. This page is also available as Markdown.

钱包

本地、非托管的多链加密钱包,智能体可以读取余额并发起转账。密钥保留在核心中,绝不会通过网络传输。

一个刻意设计的 基础, 非托管的 由 Rust 核心拥有的多链加密钱包。它从同一个恢复短语派生出每条受支持链上的一个账户,读取余额,并运行严格的 准备 → 确认 → 执行 流程,用于原生转账和少量代币转账。

它刻意保持极简:只有密钥/账户管理以及基础链上操作。更高级的 DeFi(兑换、桥接、通用合约/dapp 调用)位于单独的 web3 模块中,并且 不属于钱包的 agent 或 RPC 接口。

最重要的一个特性是: 签名和广播完全在核心内部基于解密后的恢复短语完成。任何私钥都不会离开设备或通过网络传输。 这是你的钱,因此钱包在设计上偏保守。


受支持的链和代币标准

设置会派生 每条链恰好一个账户。EVM 在六个网络中复用同一个账户。仅支持下列标准的转账。其他任何内容(兑换、任意合约调用)都不在钱包范围内。

网络
原生
代币标准
备注

EVM

Ethereum、Base、Arbitrum、Optimism、Polygon、BNB Chain

ETH / BNB / 等

ERC-20(BNB Chain 上为 BEP-20)

一个 EVM 在全部六个网络中共用一个账户;每次请求按需选择网络,默认为以太坊主网。支持 EIP-1559 / 结构化交易签名。

比特币

主网

BTC

None

P2WPKH(原生 SegWit)。 拒绝代币转账。 用于余额/广播的 Esplora REST 接口。

Solana

主网 / 测试网(按 RPC)

SOL

SPL

ed25519 签名;原生和 SPL 代币转账。

波场

主网

TRX

TRC-20

用于原生和 TRC-20 转账的 TronGrid REST 接口。

内置资产目录包括原生资产以及各链常见的稳定币(例如,USDC/USDT 作为 ERC-20/BEP-20,Solana 上的 USDC 作为 SPL,Tron 上的 USDT 作为 TRC-20)。


入门与恢复短语

设置是一次性的全有或全无操作:它会持久化同意标志、助记词词数、设置来源、每条受支持链恰好一个派生账户,以及加密后的恢复短语。有效的 BIP-39 助记词词数有 12、15、18、21 或 24.

恢复短语是唯一的秘密。钱包会存储每条链的账户 地址 (可安全展示)与密钥材料分开存放,只有加密短语才能重建私钥。


密钥托管与安全

钱包是 非托管且本地化的。没有服务端密钥托管。

  • 恢复短语在静态存储时始终是加密的。 它通过核心 加密 域加密后才会持久化到任何位置。

  • 首选位置:操作系统钥匙串。 加密短语存放在操作系统钥匙串中,键名为 wallet.mnemonic,作用域由从工作区派生的用户 ID 限定。访问受钥环同意策略控制。

  • 回退方案:工作区 JSON。 当钥匙串不可用时(例如无头环境),加密短语会回退到 {workspace_dir}/state/wallet-state.json。加载时,任何位于 JSON 中的密钥都会透明地 迁移到钥匙串中 ;一旦可用,就会从 JSON 中移除。

  • 原子性、受保护的写入。 wallet-state.json 会在进程级锁下以原子方式写入(临时文件 + fsync + 持久化)。损坏或无效的状态文件会被隔离,而不会被信任。

  • 仅在签名时解密。 链签名器只会在派生用于签署已确认交易的密钥时,在核心内部解密短语。明文密钥从不持久化,也从不通过网络序列化传输。

另见 操作系统钥匙串与密钥存储 ,了解密钥在各平台上的存储方式,以及 隐私与安全 ,了解更广泛的模型。


读取余额和链信息

只读接口无需确认:

  • 状态:入门状态以及可安全展示的每条链账户地址。

  • 余额:每个账户的原生资产余额。注意:目前只有 EVM 余额目前会实时读取 (目前是以太坊主网);BTC、Solana 和 Tron 会调用其提供方,但在出错时会回退为零余额,并显示“provider missing”状态。

  • 网络默认项 / 支持的资产:每条链的 RPC 和区块浏览器 URL、能力标志,以及内置资产目录。

  • 链状态:每条链的就绪状态和当前活动 RPC URL。

每条链/网络的 RPC 端点都可通过 OPENHUMAN_WALLET_RPC_* 环境变量覆盖。日志中 URL 会被脱敏为协议 + 主机。


发送转账:准备 → 确认 → 执行

每次写入都是有意设计的两步流程。钱包绝不会一步直接发送。

  1. 准备 (prepare_transfer):验证金额、目标地址,以及(对于代币)calldata,估算手续费,并返回一个 已准备报价 以及一个 quoteId。报价保存在内存存储中,具有 5 分钟 TTL,上限为 64,并且 可跨重启持久化。

  2. 确认 + 执行 (execute_prepared):需要 confirmed: true 以及有效的 quoteId。报价会在广播前以原子方式被消费,因此并发确认不会重复提交;如果失败,则会刷新 TTL 后恢复,以便仍可重试。

报价所有者绑定。 每个报价都绑定到创建它的聊天线程。报价只能由创建它的同一所有者执行;若 quoteId 泄露到共享频道,则会返回无法区分的“未找到”错误,而不会让另一个会话劫持它。

转账仅限于 原生转账以及上表中的代币标准。比特币拒绝代币转账。此处不提供兑换、桥接和通用合约调用。


交易状态跟踪

广播后,三个只读检查器让 agent 可以通过哈希跟踪交易:

  • tx_status:生命周期状态(pending / confirmed / failed / not found)。

  • tx_receipt:回执详情(成功、手续费、区块)。

  • lookup_tx:原始交易载荷。


Agent 工具与审批安全

Agent 通过六个工具访问钱包:

工具
目的

wallet_status

入门状态 + 账户地址。

wallet_chain_status

每条链就绪状态 + 当前活动 RPC。

wallet_prepare_transfer

构建经过验证并估算手续费的报价。

wallet_tx_status

按哈希查询交易生命周期状态。

wallet_tx_receipt

按哈希查询交易回执。

wallet_lookup_tx

按哈希查询原始交易。

注意,这里没有 任何可执行转账的 agent 工具。 Agent 可以准备报价,但真正转移资金(execute_prepared)必须通过 RPC 接口,并且必须经过明确确认并通过所有者绑定检查。结合先准备后确认的流程以及按线程绑定的报价,这可防止 agent 悄然花费资金。

由于这些是金融操作,应通过 审批门 向人类确认后再移动资金。请将每笔转账都视为高风险操作。


另请参阅

最后更新于