限价单¶
限价单允许您指定想要买入或卖出的确切价格。订单停留在订单簿上,直到成交、取消或到期。
前提条件¶
下限价单前,您需要:
- 将代币存入 Vault — 您和交易对手方都预先存入 Vault,保证每个匹配的订单都能结算。请参阅 Vault 了解为什么需要以及它如何运作。
- 钱包中有 ETH — 限价单结算在链上进行,Gas 以真实 ETH 支付(与兑换不同,兑换的 Gas 包含在报价中)。
买价(买单)¶
买单指定:
- 价格 — 您愿意为每单位支付的最高价格
- 数量 — 您想要购买的数量
- 交易对身份 —
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 智能合约管理 — Sera 的链下服务从不持有或控制您的资金。
当您下限价单时:
- 所需的抵押品在链上的 Vault 智能合约中冻结 — 它仍留在合约中您的地址下,不会转移给 Sera
- 当订单成交时,收益通过结算合约在链上记入您的 Vault 余额
- 如果您取消,冻结的抵押品会释放回您的可用 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 |
完整的请求/响应详情请参阅订单端点。