合约
以下是 Hypercall 主网 Alpha 当前的合约地址。在交易场所逐步扩展期间,上线范围有意保持受限。
Hypercall 的链上组件部署在 HyperEVM(链 ID 999)上。每位用户拥有一个 Account 合约;Exchange 持有交易场所的 USDC 和期权托管资产,并针对各 Account 执行已签名的指令;Factory 负责创建 Account;Option Registry 负责部署和识别期权代币。
合约职责
Exchange
可升级代理合约。主网版本为 0.6.1。
- 代表交易场所在 HyperCore 上持有存入的 USDC(
depositUsdcFor、depositPmLiquidityFor)。 - 在存入时销毁期权 ERC20 代币,并发出
Deposit事件供引擎入账(depositOption)。 - 登记由 Factory 创建的 Account,并记录每个 Account 的管理者(
getAccounts、getAccount、managers)。 - 执行已签名的指令。
executeUserDirective将由管理者或 API 钱包签名的指令转发给 Account。executeRsmDirective执行由 RSM 签名的系统指令(入账、提款、强制平仓状态)。两者都只能由 Hypercall 的排序器调用;用户负责签名,Hypercall 负责提交。 - 按签名者记录已使用的 nonce(
isNonceUsed)。
Account
每位用户一个,以 BeaconProxy 形式部署。主网版本为 0.2.4。
- 持有用户在 HyperCore 上的余额和持仓。永续合约和现货都记录在该 Account 的 HyperCore 账本上。
- 拥有一个管理者(创建该 Account 的 EOA)以及任意数量的具名 API 钱包。
- 验证指令签名。API 钱包可以签署下单和撤单;其他操作都需要管理者签名。参见 EIP-712 签名。
- 仅限管理者的直接调用:
transferTo(recipient, token, amount)将 HyperEVM 代币转出 Account;approveZeroFeeBuilder(builder)以 0% 最高费率批准一个 Hyperliquid builder。Hypercall 的永续合约订单带有 Hypercall builder code,因此在首次下永续合约订单之前需要完成一次该批准。 depositSpot将 HYPE 或受支持的现货代币从 HyperEVM 桥接到该 Account 在 HyperCore 上的账户。
Factory
通过 createAccount(uint96 salt) 创建 Account。地址由管理者和 salt 确定性生成;predictAccount(manager, salt) 可在创建前返回该地址。参见 开户。
Router
资金辅助合约。deposit(account, token, amount, isPerp) 通过 Circle 的 CoreDepositWallet 将 USDC 路由至 HyperCore,现货代币经由 Account 路由,期权代币经由 Exchange 路由。depositHype(account) 用于桥接原生 HYPE。
Option Registry
部署期权 ERC20 代币,并作为判断某代币是否为受支持期权的权威来源(isSupportedOption)。
指令类型
| 指令 | 签名者 | 说明 |
|---|---|---|
hl_limit_order | API 钱包 | Hyperliquid 限价单 |
hl_cancel_by_oid | API 钱包 | 按 Hyperliquid 订单 ID 撤单 |
hl_cancel_by_cloid | API 钱包 | 按客户端订单 ID 撤单 |
hc_update_api_wallet | 管理者 | 在 Account 上添加、替换或移除具名 API 钱包 |
hl_add_api_wallet | 管理者 | 为该 Account 在 HyperCore 上批准一个 Hyperliquid API 钱包 |
hl_send_asset | 管理者 | 从该 Account 在 HyperCore 上发送资产 |
hl_set_abstraction | 管理者 | 设置该 Account 的 HyperCore 账户模式(仅限统一模式) |
RSM 指令(入账、提款、强制平仓的开始与停止、仅减仓恢复订单)由 RSM 签名者签名,并由排序器提交。用户永远不需要签署这些指令。参见 RSM 指令。
强制平仓
强制平仓在 Hypercall 引擎中执行。参见 强制平仓。Exchange 预留了钩子,可供链上拍卖合约将 Account 的管理者转移给中标者,但主网上目前未配置拍卖方。
信任与权限
本节是链上谁能做什么的参考。简要说明见信任模型。
提交
只有 Hypercall 的排序器持有 Exchange 上的 SEQUENCER_ROLE,因此只有它能调用 executeUserDirective 和 executeRsmDirective。您签名,Hypercall 提交。排序器无法伪造用户指令:账户合约自行恢复签名者,只接受其管理者或有效的 API 钱包。
RSM 指令
当引擎状态需要执行链上操作时,RSM 签名者签署指令,由排序器提交。Exchange 会拒绝任何非注册 RSM 签名者(Exchange.rsmSigner)签署的 RSM 指令。当前的 RSM 签名者由运营方控制;路线图将公布该角色如何去中心化或以其他方式降低信任要求。
Exchange 自行执行的指令:
- 从 Exchange 的 HyperCore 余额发送 USDC 或现货代币,包括标准 USDC 提款
- 提取期权时向某地址铸造期权 ERC20
- 对账户开始和停止强制平仓
账户接受的 RSM 指令(由账户合约强制约束):
- 在账户的 Hyperliquid 余额上下达仅减仓 IOC 订单,或以接近市价的 IOC 现货卖单换成 USDC
- 从账户在 HyperCore 上发送资产,收款方只能是 Exchange(例如弥补负余额)
- 撤单
账户处于强制平仓中时,RSM 指令仍可执行。期权到期结算不是 RSM 指令,而是在引擎状态中作用于现金。RSM 签名者地址和每次指令执行都可在链上查看。
升级
- Exchange 和 Option Registry 是可升级代理。
- Account 和 Option Token 是 BeaconProxy。所有账户运行同一实现,因此 Account Beacon 升级一次会同时改变所有账户。期权代币与 Option Token Beacon 同理。
- Timelock 持有 Exchange 代理管理权,以及 Account、Option Token 和 Option Registry 的升级路径,最短延迟为 30 秒。
- Admin Safe 多签持有 Exchange 的管理员和治理者角色,以及 Factory 的所有者角色。
- 由 Admin Safe 持有的治理者角色可以更换 RSM 签名者和 auctioneer,并转移 Exchange 的 USDC(
rescueUsdcToEvm)。在信任计划第 1 步中,该角色将纳入时间锁。作为 Exchange 的默认管理员,Safe 还可以不经时间锁直接授予或撤销SEQUENCER_ROLE及 Exchange 的任何其他角色。
它们的地址见下方主网配置表。账户所有权只能通过链上交易变更。
已部署地址
主网 Alpha
| 合约 | 地址 | 说明 |
|---|---|---|
| Exchange | 0xE6b7FaA216cabb2b38B392f577C9c826378b2240 | 主交易合约 |
| Exchange Implementation | 0xF7F0610aC612d140bdb34DCD2872828Bc67349cD | 代理背后的 Exchange 实现合约 |
| Account Implementation | 0xCD87F572bef2855c8Ffb69A6Da3D9785d6017791 | Account 实现合约 |
| Account Beacon | 0x1b96D6a48d1fB34dC45953697414656D2851Ca93 | Account beacon |
| Fetcher | 0x8654912Eae1554662665C13EeD4f1D8A4b028aDB | 读取辅助合约 |
| Option Token Implementation | 0x6D0C7a116f9561A8De692c23c4C11682738ed206 | 期权代币实现合约 |
| Option Token Beacon | 0xfb320352B25Dba7f139EA9Bf8966891CCa12dC35 | 期权代币 beacon |
| Factory | 0x2CeeAC2E032e4cCb05FF744619BfAb8cC75efE1b | Account 工厂合约 |
| Router | 0xF41FF41B6F007dE851ACc9F43Bd2f597Da741E2D | 资金与路由辅助合约 |
| Option Registry | 0x8C8efdd5F78C25215d03c8BbD5D1f6f0F1BB0598 | 期权代币注册合约 |
| Option Registry Implementation | 0xF222421a93df1086E329503723b3cC4c30546C46 | 代理背后的 Option Registry 实现合约 |
| Hypercall Fee Collector | 0x406ceBfC7063e55761007D1C4b66B29308016602 | 永续合约订单上的 Hyperliquid builder 地址(即 GET /exchange-info 中的 hl_builder_address) |
主网配置
| 参数 | 地址或数值 | 说明 |
|---|---|---|
| USDC | 0xb88339CB7199b77E23DB6E890353E22632Ba630f | Hypercall 使用的 HyperEVM USDC |
| Core Deposit | 0x6B9E773128f453f5c2C60935Ee2DE2CBc5390A24 | HyperCore 存款辅助合约 |
| RSM Signer | 0x502E7fAbF34E84EeB115C34FE947b79A94dF886E | 当前由运营方控制的 RSM 签名者 |
| Sequencer | 0x56a2924217C91EB4d6989Cf4C7b4dF03020E8944 | 当前排序器 |
| Timelock | 0x96f17e6f7269cA4300a391514c109eBA70661674 | 持有 Exchange 代理管理权,以及 Account、Option Token 和 Option Registry 的升级路径。最短延迟为 30 秒。 |
| Admin Safe | 0xF741246D2e0ADD4EFa7e88BE0961cccf3562b502 | 持有 Exchange 管理员与治理者角色以及 Factory 所有者角色的多签钱包 |
源代码
合约源代码将在审计完成后公开。
相关内容
- EIP-712 签名 - 消息格式与签名
- 代理授权 - API 钱包设置
- 开户 - 账户创建与存款
- API 认证 - 请求签名