限價單¶
限價單讓您指定想要買入或賣出的確切價格。訂單停留在訂單簿上,直到成交、取消或到期。
前提條件¶
掛限價單前,您需要:
- 將代幣存入 Vault — 您和交易對手方都預先存入 Vault,保證每個配對的訂單都能結算。請參閱 Vault 了解為什麼需要以及它如何運作。
- 錢包中有 ETH — 限價單結算在鏈上進行,Gas 以真實 ETH 支付(與兌換不同,兌換的 Gas 包含在報價中)。
Bid(買單)¶
買單指定:
- 價格 — 您願意為每單位支付的最高價格
- 數量 — 您想要買入的數量
- 交易對識別 —
from_address是市場的基礎代幣(您想買入的代幣),to_address是市場的報價代幣(用來為市場定價的代幣)
範例:「以每 XSGD 0.7450 USDC 的價格買入 1000 XSGD」
Ask(賣單)¶
賣單指定:
- 價格 — 您願意接受的每單位最低價格
- 數量 — 您想要賣出的數量
- 交易對識別 —
from_address仍然是市場的基礎代幣,to_address仍然是報價代幣
範例:「以每 XSGD 0.7460 USDC 的價格賣出 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 key)
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 |
完整的請求/回應細節請參閱訂單端點。