任意资产,一键充进
HyperLiquid
TRON、Ethereum、BNB Chain、Solana 等链上的资产,自动换成 USDC,直达你的 HyperLiquid 保证金账户。
合作 API
任意币种,一步充值 Hyperliquid 合约账户
无需改变现有 API 对接方式,即可快速接入任意币入金 Hyperliquid 能力。多家流动性方同时报价,自动选出用户到手最多的路线,完成兑换、跨链与充值,让用户无需切换平台,直接使用钱包资产进行合约交易。
接入前 vs 接入后
用户持有 TRON 上的 USDT,想给自己的 HyperLiquid 保证金账户充值。绿色圆点是用户的钱走的路线。
用户在钱包里看到的
- 打开钱包里的 HyperLiquid 充值入口和现在一样的位置。
- 选择手里的资产,输入金额TRX、ETH、SOL、USDT 等都可以,页面显示预计到账多少 USDC。
- 点一次充值,在钱包里确认签名资产自动换成 USDC,送到他的 HyperLiquid 保证金账户;部分路线最后还要再签一次名(免手续费)。
先把几个词说清楚
- HyperLiquid 保证金账户
- 用户在 HyperLiquid 上放交易本金的账户。往里充钱,就能开始交易。
- USDC · Arbitrum
- 保证金账户只收 USDC(与美元 1:1 的数字货币),而且只从 Arbitrum 这条链收。
- 为什么需要这个 API
- 用户手里的往往不是 Arbitrum 上的 USDC。这个 API 负责把他手里的资产换好、送到,充进保证金账户。
它只做这一件事
做:把资产充进 HyperLiquid 保证金账户
- 输入是用户手里的任意资产:各链原生币和主流代币
- 输出只有一种:他保证金账户里的 USDC
- 用户全程不离开你的钱包
不做:其他用途
- 不是通用的币币兑换,不能换成别的币
- 不把用户引到外部页面或其他 App
- 不替代你钱包现有的 HyperLiquid 对接
接入后,钱包里这些都不需要改:
合约下单持仓与平仓提现账户体系与登录原有 HyperLiquid 接口调用USDC 直接充值
接入步骤
- 开通合作方账号联系商务,拿到沙箱 key(
hk_test_…)和 secret。上线前提供后端出口 IP,换成正式 key(hk_live_…)。 - 在你的服务端对接签名每个请求用 HMAC-SHA256 签名,secret 只放服务端,不进 App 或浏览器。接入指南里有四种语言的示例和测试向量。
- 调用报价接口,显示预计到账资产列表用
GET /v1/assets取,不要写死(各链原生币和代币会随流动性方更新)。询价时传入资产、数量、用户钱包地址和他的 HyperLiquid 地址,返回多条路线,已按用户到手最多排好序,附带手续费、用时和需要签几次名。 - 用户确认,钱包逐步签名下单后得到 steps[]。每一步先取最新的待签名交易,交给用户的钱包签名并广播,再提交交易哈希。
- 等回调,直到充进保证金账户订单状态变化时我们回调你的服务端(order.completed 等)。也可以查询订单,向用户展示进度。
接口调用示意 字段以接入指南和 openapi.yaml 为准
// 0. 资产列表:来源资产、精度、最小金额(没有固定下限时为 null)、是否原生币 GET /v1/assets // 1. 报价:用户输入金额时调用(服务端,HMAC 签名) POST /v1/quotes { source: { asset: "tron:USDT", amount: "500000000", from_address: "T…" }, destination: { asset: "hyperliquid:USDC_PERP", address: "0x…" }, end_user: {…} } // → routes[](已排序)、recommended_route_id;报价 60 秒有效 // 2. 下单:用户点「一键充值」时调用(必带 Idempotency-Key) POST /v1/orders { quote_id, route_id, partner_order_id } // → Order:steps[] 里是待签名的步骤(授权、兑换、存入…) // 3. 每个步骤:取交易 → 用户钱包签名并广播 → 提交哈希 POST /v1/orders/{id}/steps/{step_id}/prepare POST /v1/orders/{id}/steps/{step_id}/submit { tx_hash } // 4. 进度:以回调为主,查询为辅 webhook order.completed GET /v1/orders/{id} // → 等待签名 / 处理中 / 还差最后一步 / 已完成 / 已退款 …
文档与商务
整体架构与设计说明
一次付款,钱怎么进 HyperLiquid
HyperFill 把三件事串起来:HL Deposit API 向 LI.FI、OmniBridge、Bridgers 同时询价并选出最优路线,用户在自己的钱包里签名付款,Hyperliquid 官方桥合约负责入账。这一页说明每一段由谁完成、用的是哪个真实接口,以及上线前还需确认的事项。
系统结构
真实接口对接表
全部来自 HL Deposit API 的 OpenAPI 契约(JSON,HMAC 签名)。前端只和自己的后端说话,key id 与 secret 不出现在浏览器里。
| 用户看到的 | HyperFill 后端 | HL Deposit API | 要点 |
|---|---|---|---|
| 币种列表、搜索 | GET /api/coins | GET /v1/assets | 只列可用的来源资产(各链原生币和代币,由 OmniBridge 币种列表同步),缓存 5 分钟;最小金额用于输入框校验 |
| 预计到账、手续费 | POST /api/quote | POST /v1/quotes | 传付款钱包地址和 HyperLiquid 地址;多条路线已排序,取推荐路线;报价 60 秒有效,页面每 30 秒刷新;分成数据在后端剔除 |
| 一键充值 | POST /api/order | POST /v1/orders | 每次点击带一个 Idempotency-Key,网络重试不会重复下单;价格变化(PRICE_CHANGED)时展示新报价让用户重新确认 |
| 钱包签名 | POST /api/order/step/prepare | …/steps/{id}/prepare | 每次签名前取最新的待签名交易(TRON 约 10 分钟、Solana 约 60–90 秒过期) |
| 签名完成 | POST /api/order/step/submit | …/steps/{id}/submit | 钱包广播后立刻提交交易哈希;免 gas 的最后一步改为提交 permit 签名 |
| 进度条 | POST /api/order/state | GET /v1/orders/{id} | 每 6 秒轮询;steps[] 里的每一步对应进度条上的一格 |
| 充值记录 | POST /api/orders | GET /v1/orders?from_address= | 按付款钱包地址查询,换设备也能看到 |
| 钱包余额、Solana 区块哈希 | POST /api/balances · POST /api/sol/balances · GET /api/sol/blockhash | —(直接读链) | 按我们自己的币种列表读余额,不当通用节点代理;区块哈希只用于页面构造 Solana 转账 |
订单状态怎样变成用户看得懂的话
状态值是开放枚举:遇到不认识的值,一律按「处理中」展示,不报错。
| 订单状态(substatus) | 页面上的说法 | 用户要做什么 |
|---|---|---|
AWAITING_SIGNATURE | 等待签名 | 在钱包里签名第一步 |
PROCESSING · WAIT_SOURCE_CONFIRMATIONS · PROVIDER_EXCHANGING · WAIT_HL_CREDIT | 充值进行中,并显示当前在做什么 | 等待 |
ACTION_REQUIRED · WAIT_SECOND_LEG | 还差最后一步 | 两段式路线:USDC 已到 Arbitrum,签名存入(可免 gas) |
ACTION_REQUIRED · KYC | 需要身份认证 | 打开服务商给的认证链接 |
COMPLETED | 充值完成,已进入保证金账户 | — |
REFUNDING · REFUNDED | 正在退款 / 已退款,附退款原因 | —(原币退回付款地址) |
FAILED · EXPIRED · CANCELLED | 失败 / 已超时 / 已取消,并说明资金仍在钱包 | 重新报价再试 |
PARTIAL | 资金没有进入保证金账户 | USDC 在自己的钱包里,可自行存入 |
UNDER_REVIEW | 处理时间比平时长 | 超过 24 小时联系客服并提供订单号 |
设计决定
目标固定,不给选择器到账框只展示「HyperLiquid 保证金账户 · USDC」,带锁标记。目标由 API 固定为 hyperliquid:USDC_PERP,用户不会选错币或选错网络。
一个主按钮「一键充值」承担连接钱包、下单、发起签名三件事。按钮上方一行字说明当前还差什么。
钱包只负责签名每一步要签什么交易,都由 API 备好再交给钱包:EVM 走 eth_sendTransaction,TRON 走 TronLink 签名广播,Solana 走 signAndSendTransaction。前端不改动 API 给的交易;只有 Solana 的存款转账没有现成交易,由前端按 API 给的地址和精确金额构造。
地址确认冷静而明确EVM 自动带入地址并要求勾选确认;TRON、Solana 付款时手动填写 HyperLiquid 地址,地址分段回显,首尾高亮,便于逐段核对。
不编造数字手续费、到账金额、用时、签名次数全部来自实时报价;非稳定币来源的费用统一折成 USDC 显示;没有数据时显示「—」。给合作方看的分成数据不会出现在用户页面上。
动效只说明流向报价时竖线上的圆点下落表示钱在路上;进度页当前步骤有呼吸圈。系统开启「减少动态效果」时全部关闭。
上线前需要确认的事项
关键
合作方凭证与合规声明后端需要配置 HLD_KEY_ID 和 HLD_SECRET。每次报价都会带上「已对终端用户做 KYC / AML / 制裁筛查」的声明(KYC_ATTESTED=1),这是合作协议里的义务,确认做到之后才能打开。用户所在国家取自 CDN 的 CF-IPCountry 头,没有时用 END_USER_COUNTRY。
关键
正式 key 需要 IP 白名单沙箱 key(hk_test_…)用 mock 流动性方,随便测。正式 key(hk_live_…)要先把后端的出口 IP 交给我们加白名单。
重要
两段式路线的最后一步部分路线先把 USDC 打到用户自己的 Arbitrum 地址,再存入 Hyperliquid 桥合约。API 配置了中继钱包时,用户只签一次 permit,不花手续费;没有配置时,用户要自己发交易,并且需要有少量 Arbitrum ETH。
重要
最低充值额Hyperliquid 不入账低于 5 USDC 的存款,API 要求预计到账不少于 6 USDC,有固定下限的资产,最小付款额以 /v1/assets 为准;没有固定下限(min 为 null)的,由流动性方在报价时给出。页面在输入时就拦截,不让用户下一笔注定失败的单。
重要
地区与准入部分流动性方(如 OmniBridge)在美国、中国大陆等地区不可用,被限制的国家或地区会收到 JURISDICTION_RESTRICTED。服务地区与准入策略需法务确认。
待补
当前不支持的资产API 目前只收 EVM 链、TRON、Solana 上的资产;BTC、DOGE 等 UTXO 链和 Sui、TON 等暂不支持。Bridgers 只服务 ERC20 / TRC20 代币,原生币和 Solana 只走 OmniBridge。一条链要出现在列表里,API 必须配置了它的节点。到账落在现货还是合约账户,需要上线前逐条路线实测。
如何运行完整版
# Node 18 以上,没有 npm 依赖 cp .env.example .env # 填入 HLD_BASE_URL、HLD_KEY_ID、HLD_SECRET,确认后设 KYC_ATTESTED=1 node server.js # 打开 http://localhost:8787