跳转至

限价单

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

前提条件

下限价单前,您需要:

  1. 将代币存入 Vault — 您和交易对手方都预先存入 Vault,保证每个匹配的订单都能结算。请参阅 Vault 了解为什么需要以及它如何运作。
  2. 钱包中有 ETH — 限价单结算在链上进行,Gas 以真实 ETH 支付(与兑换不同,兑换的 Gas 包含在报价中)。

买价(买单)

买单指定:

  • 价格 — 您愿意为每单位支付的最高价格
  • 数量 — 您想要购买的数量
  • 交易对身份from_address 是市场的基础代币(您想买入的代币),to_address 是市场的报价代币(用来给市场定价的代币)

示例:"以 0.7450 USDC/XSGD 的价格买入 1000 XSGD"

卖价(卖单)

卖单指定:

  • 价格 — 您愿意接受的每单位最低价格
  • 数量 — 您想要卖出的数量
  • 交易对身份from_address 仍然是市场的基础代币,to_address 仍然是报价代币

示例:"以 0.7460 USDC/XSGD 的价格卖出 500 XSGD"

对于所有限价单:

  • bidto_address 买入 from_address
  • ask 卖出 from_address,换取 to_address
  • 请使用 GET /tokens 返回的代币合约地址;人类可读交易对标签来自 GET /markets

抵押品机制

抵押品完全由链上 Vault 智能合约管理 — Sera 的链下服务从不持有或控制您的资金。

当您下限价单时:

  1. 所需的抵押品在链上的 Vault 智能合约中冻结 — 它仍留在合约中您的地址下,不会转移给 Sera
  2. 当订单成交时,收益通过结算合约在链上记入您的 Vault 余额
  3. 如果您取消,冻结的抵押品会释放回您的可用 Vault 余额

即使在冻结状态下,您的代币仍留在 Vault 合约中,如果 Sera 的链下服务不可用,可通过紧急提款取回。

您可以通过 GET /balances 查看可用余额和冻结余额。

Gas 费用

限价单在匹配时进行链上结算。您需要以真实 ETH 支付 Gas — 与兑换不同,Gas 不会被抽象处理。请确保您的钱包中有 ETH 来支付结算交易费用。

Note

在 Sepolia 测试网上,您可以从水龙头获取免费测试 ETH。

订单过期

订单必须包含过期时间戳 — 一个未来的 Unix 时间戳,超过此时间后订单将无法再被匹配。

  • 每个已签名订单都必须提供 expiration
  • expiration <= now 时,API 会直接拒绝
  • 超过“当前服务器时间 + 365 天 - 300 秒时钟偏差保护”的值也会被拒绝

构建订单时请先读取 GET /system/time,并留出一点客户端缓冲,不要在边界时间上签名。

取消订单

如果订单尚未完全成交,可以随时取消。取消部分成交的订单会将未成交部分退还到您的 Vault 余额。

  • 单个取消POST /orders/cancel,附带 EIP-712 CancelOrder 签名
  • 取消全部DELETE /orders/cancel-all(需要 API 密钥)

Note

所有用户都受 5 分钟冷却期限制 — 订单必须至少存在 5 分钟后才能取消。

API 参考

操作 端点 认证
下单 POST /orders EIP-712 签名
取消订单 POST /orders/cancel EIP-712 签名
取消全部 DELETE /orders/cancel-all API Key
获取订单 GET /orders/{id} API Key
列出订单 GET /orders API Key

完整的请求/响应详情请参阅订单端点