跳转至

限价单

限价单允许您指定想要买入或卖出的确切价格。订单停留在订单簿上,直到成交、取消或到期。

前提条件

下限价单前,您需要:

  1. 充值到 Vault — 限价单和 VL 订单需要抵押品。预存款可减少资金不足失败,但不能保证结算。
  2. 自行发送交易的 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_address
  • ask 卖出 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,详见订单端点。