Hyperliquid机器人余额为空或签名被拒:核账户、agent权限与nonce
链小知 · 进阶 · 核验 · 依官方文档整理
将真正账户和签名者分开,检查委托替换、过期、内部划转及nonce冲突。
开始前准备
- 准备原账户/子账户地址、Mainnet/Testnet、agent地址与名称、批准/过期记录,以及脱敏action、nonce、错误和当时仓位;不要提供密钥、助记词或可重放签名。
- 适用2026-10-14读取的官方静态文档;只核本人已有脱敏记录,不登录、请求账户、运行SDK、签名或操作资金。当前文档不反推旧版本行为。
1. 把账户地址和签名者分别列出
API wallet又叫agent wallet,主账户可批准其替主账户或子账户签名。Info读取对象应是实际主/子账户,agent地址不是资金账户;原userRole返回agent时data.user才指向所属用户。子账户/金库没有独立私钥,原动作的vaultAddress指定被操作账户。
检查结果:资金账户、签名者、目标子账户和网络分别可追溯,空结果未当账户为零。
2. 按原action核权限,不用一个标签概括
对原order等交易动作和资金动作逐项辨认。当前Exchange明确允许agentSendAsset由agent签名,但destination必须等于source地址,并按sourceDex/destinationDex在Spot或Perp DEX间划转;Perp DEX仅支持其抵押token。这不代表可向任意外部地址转出,也不能说agent绝无内部余额移动能力。
检查结果:原action、源/目标地址与DEX匹配,未把内部划转许可扩大到外部提现。
3. 从签名者定位nonce冲突
Hyperliquid按signer保留最高100个nonce;新nonce须未用过且大于集合最小值,处在区块时间T的(T−2天,T+1天)内,时间单位毫秒。这与Ethereum严格nonce+1不同。同一agent签多个子账户仍共用nonce集合,多进程原日志应按signer比较,不能仅按子账户查重。
检查结果:nonce完整值、毫秒时间和同signer调用顺序可比较;重复/越窗与余额不足分开。
4. 区分委托期限和单次动作deadline
approveAgent可在名称附valid_until {timestamp}设置期限,当前正文上限180天;expiresAfter是部分action的单次毫秒截止时间,Core USDC transfer等user-signed动作不支持它。某次动作过期不等agent整体被注销,批准回执也不等后续动作成功。
检查结果:委托过期与action截止分别有字段依据;未知期限未补猜。
5. 核替换或注销后的权限与遗留材料
新建同名agent会注销原同名agent,新建unnamed会替换旧unnamed;到期或注册账户无资金也可能触发nonce状态清理。官方警告不要复用旧agent地址:nonce清理后旧已签动作可能重放。用已有批准/替换记录定位生效期间,并另核开放订单/仓位;从委托注销记录不能推出它们已取消或关闭。
检查结果:旧agent生命周期、旧签名风险及订单/仓位结论分开,未导出或重放签名。
怎样确认完成
- 能将原记录中的权限、阶段或资产变化定位,并列明缺失材料。
- documentation:步骤与来源已核,个人账户状态、执行和接收未实测。
常见错误与边界
- 单次action截止时间与agent整体期限不同;替换旧agent也不等取消所有开放订单。
- 受限内部划转、交易权限和外部资金控制需要逐action看,保留原批准记录。