限价单¶
限价单允许您指定想要买入或卖出的确切价格。订单停留在订单簿上,直到成交、取消或到期。
前提条件¶
下限价单前,您需要:
- 充值到 Vault — 限价单和 VL 订单需要抵押品。预存款可减少资金不足失败,但不能保证结算。
- 自行发送交易的 Gas — 钱包发送的 approve、充值、提款交易需要网络 Gas;结算由 relayer 执行者发送。
买价(买单)¶
买单指定:
- 价格 — 您愿意为每单位支付的最高价格
- 数量 — 您想要购买的数量
- 交易对身份 —
from_address是市场的基础代币(您想买入的代币),to_address是市场的报价代币(用来给市场定价的代币)
示例:"以 0.7450 USDC/XSGD 的价格买入 1000 XSGD"
卖价(卖单)¶
卖单指定:
- 价格 — 您愿意接受的每单位最低价格
- 数量 — 您想要卖出的数量
- 交易对身份 —
from_address仍然是市场的基础代币,to_address仍然是报价代币
示例:"以 0.7460 USDC/XSGD 的价格卖出 500 XSGD"
对于所有限价单:
bid用to_address买入from_addressask卖出from_address,换取to_address- 请使用
GET /tokens返回的代币合约地址;人类可读交易对标签来自GET /markets
抵押品机制¶
资产保管在链上 Vault。下单通过链下账务把金额从 available 移到 frozen 来预留抵押品。结算更新链上账本;确认取消或恢复结果后更新预留。判断能否再下单时,应查看 vault_spendable 及恢复/同步字段,详见余额。
Gas 费用¶
结算交易消耗 EVM Gas,由 relayer 执行者签名并广播,其钱包支付链上网络费。限价单所有者无需仅为该笔结算在自己的钱包中持有 ETH。用户可见费用以报价和 settlement_economics.fees_paid 为准,这不表示所有部署都承诺免费交易。用户自行发送的 approve、充值、提款等交易仍需支付网络 Gas。
订单过期¶
订单必须包含过期时间戳 — 一个未来的 Unix 时间戳,超过此时间后订单将无法再被匹配。
- 每个已签名订单都必须提供
expiration - 当
expiration <= now时,API 会直接拒绝 - 超过“当前服务器时间 + 365 天 - 300 秒时钟偏差保护”的值也会被拒绝
构建订单时请先读取 GET /system/time,并留出一点客户端缓冲,不要在边界时间上签名。
取消订单¶
如果订单尚未完全成交,可以随时取消。取消部分成交的订单会将未成交部分退还到您的 Vault 余额。
- 单个取消 —
POST /orders/cancel,附带 EIP-712 CancelOrder 签名 - 取消全部 —
POST /orders/cancel-all(需要 API Key 与 EIP-712 CancelAll 签名)
Note
下单后存在撤单冷却期(默认 300 秒,可按部署配置)。命中时返回 429;当前实现没有高频账户豁免。
API 参考¶
| 操作 | 端点 | 认证 |
|---|---|---|
| 下单 | POST /orders | EIP-712 签名 |
| 取消订单 | POST /orders/cancel | EIP-712 签名 |
| 取消全部 | POST /orders/cancel-all | API Key + EIP-712 CancelAll |
| 获取订单 | GET /orders/{id} | API Key |
| 列出订单 | GET /orders | API Key |
完整的请求/响应详情请参阅订单端点。
签名前请使用订单预览获取规范数量/价格字符串和 raw 签名字段。批量取消还需要 nonce 与 deadline,详见订单端点。