Thanh toán & Đáo hạn
Quyền chọn trên Hypercall là kiểu châu Âu và được thanh toán bằng tiền mặt. Tại thời điểm đáo hạn, các vị thế được thanh toán tự động dựa trên giá tham chiếu của tài sản cơ sở, với giá trị thanh toán được ghi có hoặc ghi nợ vào tài khoản của bạn.
Thời điểm đáo hạn
Trên mạng chính, các hợp đồng SpaceX (SPCX) đáo hạn lúc 4:00 PM ET vào ngày đáo hạn.
Testnet hiện đáo hạn lúc 08:00 UTC vào ngày đáo hạn.
Tại thời điểm đáo hạn:
- Lệnh mới bị từ chối
- Các lệnh đang mở bị hủy
- Các vị thế bước vào quy trình thanh toán
Vòng đời của công cụ giao dịch
Các công cụ giao dịch trải qua ba trạng thái:
| Trạng thái | Mô tả | Giao dịch |
|---|---|---|
| Active | Giao dịch bình thường | Được bật |
| Expired Pending Price | Đang chờ giá thanh toán từ oracle | Bị tắt |
| Settled | Thanh toán hoàn tất, vị thế đã đóng | N/A |
Chuyển đổi trạng thái
- Active → Expired Pending Price: Đã đến thời điểm đáo hạn của hợp đồng
- Expired Pending Price → Settled: Giá thanh toán đã có và tất cả vị thế đã được thanh toán
Khi một công cụ giao dịch chuyển sang trạng thái Expired Pending Price, tất cả lệnh đang mở sẽ bị hủy và lệnh mới bị từ chối với thông báo "Instrument has expired".
Giá thanh toán
Giá thanh toán là TWAP 30 phút (Time-Weighted Average Price - Giá trung bình theo thời gian) của giá chỉ số Hyperliquid Oracle cho tài sản cơ sở.
| Tham số | Giá trị |
|---|---|
| Nguồn giá | Hyperliquid Oracle (giá chỉ số) |
| Cửa sổ TWAP | 30 phút |
| Kết thúc cửa sổ | Thời điểm đáo hạn hợp đồng |
Oracle bắt đầu lấy mẫu 30 phút trước khi đáo hạn và tính TWAP tại thời điểm đáo hạn.
Việc thanh toán yêu cầu TWAP đã được hoàn tất. Nếu giá hoàn tất đó chưa có tại thời điểm đáo hạn, công cụ giao dịch sẽ ở lại trạng thái Expired Pending Price và tự động thử lại. Giao dịch đã bị tắt trong trạng thái này, nhưng các khoản ghi có và ghi nợ tiền mặt chỉ được ghi nhận sau khi có giá oracle hoàn tất.
Tính toán giá trị thanh toán
Giá trị thanh toán được tính bằng giá trị nội tại của quyền chọn tại thời điểm đáo hạn:
Quyền chọn mua (Call):
Quyền chọn bán (Put):
Trong đó:
- = Giá thanh toán (TWAP 30 phút)
- = Giá thực hiện
- = Quy mô vị thế (có dấu: dương cho long, âm cho short)
Ví dụ
Long Call (lãi - ITM):
- Vị thế: Long 2 BTC-100000-C
- Giá thanh toán: $105,000
- Giá trị nội tại: max(0, 105000 - 100000) = $5,000
- Giá trị thanh toán: 10,000** (được ghi có)
Short Call (lãi - ITM):
- Vị thế: Short 2 BTC-100000-C
- Giá thanh toán: $105,000
- Giá trị thanh toán: 10,000** (bị ghi nợ)
Long Put (lỗ - OTM):
- Vị thế: Long 1 BTC-100000-P
- Giá thanh toán: $105,000
- Giá trị nội tại: max(0, 100000 - 105000) = $0
- Giá trị thanh toán: $0 (đáo hạn vô giá trị)
Quy trình thanh toán
Khi thanh toán diễn ra:
- Lấy giá: Oracle trả về TWAP 30 phút
- Tính giá trị: Giá trị nội tại được tính cho từng vị thế
- Cập nhật tiền mặt: Giá trị thanh toán được cộng vào (long ITM) hoặc trừ khỏi (short ITM) số dư tài khoản
- Xóa vị thế: Vị thế được đóng và xóa khỏi danh mục
- Phát sự kiện: Thông báo
PositionExpiredđược gửi qua WebSocket
Việc thanh toán được xử lý một cách nguyên tử (atomic) cho từng vị thế với đảm bảo tính idempotent. Việc phát lại hoặc khởi động lại không thể gây ra thanh toán hai lần.
Sự kiện WebSocket
PositionExpired
Được gửi khi một vị thế được thanh toán:
{
"type": "PositionExpired",
"wallet_address": "0x...",
"symbol": "BTC-20250131-100000-C",
"position_size": 2.0,
"settlement_price": 5000.0,
"settlement_value": 10000.0,
"timestamp": 1738310400000
}
| Trường | Mô tả |
|---|---|
position_size | Quy mô vị thế có dấu (dương = long, âm = short) |
settlement_price | Giá trị nội tại trên mỗi hợp đồng |
settlement_value | Tổng giá trị thanh toán bằng tiền mặt |
MarketExpired
Được gửi khi một công cụ giao dịch chuyển sang trạng thái Expired Pending Price:
{
"type": "MarketUpdate",
"symbol": "BTC-20250131-100000-C",
"status": "MARKET_EXPIRED",
"timestamp": 1738310400000
}
Các endpoint API
Lấy trạng thái công cụ giao dịch
GET /instruments/{symbol}
Trả về trạng thái hiện tại của công cụ giao dịch (ACTIVE, EXPIRED_PENDING_PRICE, hoặc SETTLED).
Lấy lịch sử thanh toán
GET /settlement/history?wallet=0x...
Trả về các bản ghi thanh toán cho tài khoản của bạn.
Phản hồi:
{
"success": true,
"data": [
{
"symbol": "BTC-20250131-100000-C",
"position_size": 2.0,
"settlement_price": 5000.0,
"settlement_value": 10000.0,
"settled_at": 1738310400000
}
]
}
Xử lý sự cố
Oracle không khả dụng
Nếu oracle không thể cung cấp giá thanh toán tại thời điểm đáo hạn:
- Công cụ giao dịch vẫn ở trạng thái
Expired Pending Price - Hệ thống thử lại mỗi 30 giây
- Cảnh báo trên môi trường production được kích hoạt nếu việc chờ giá hoàn tất kéo dài
Giao dịch bị chặn ngay lập tức tại thời điểm đáo hạn bất kể oracle có khả dụng hay không.
Giá hoàn tất bị trì hoãn
Nếu TWAP hoàn tất bị trì hoãn:
- Việc thanh toán bị trì hoãn
- Hệ thống chờ giá thanh toán hoàn tất từ oracle
- Người dùng có thể thấy công cụ giao dịch vẫn ở trạng thái
Expired Pending Price - Khoản thanh toán tiền mặt sẽ xuất hiện sau khi quy trình thử lại áp dụng giá hoàn tất
Khởi động lại hệ thống
Trạng thái thanh toán được lưu vào cơ sở dữ liệu. Nếu hệ thống khởi động lại:
- Các công cụ giao dịch đã đáo hạn được xác định từ DB khi khởi động
- Việc thanh toán tiếp tục tự động
- Đảm bảo tính idempotent ngăn chặn thanh toán hai lần
Tham số
| Tham số | Giá trị | Mô tả |
|---|---|---|
| Khoảng thời gian kiểm tra đáo hạn | 60 giây | Tần suất hệ thống kiểm tra các đợt đáo hạn |
| Cửa sổ TWAP | 30 phút | Cửa sổ tính trung bình giá thanh toán |
| Khoảng thời gian thử lại thanh toán | 30 giây | Tần suất thử lại khi giá không khả dụng |
| Ngưỡng cảnh báo giá hoàn tất | 30 phút | Cảnh báo nếu công cụ giao dịch đã đáo hạn vẫn đang chờ giá hoàn tất |
| Ngưỡng cảnh báo thanh toán đang chờ | 1 giờ | Cảnh báo nghiêm trọng nếu các bản ghi thanh toán chưa được áp dụng |
Thực hành tốt nhất
- Theo dõi ngày đáo hạn: Theo dõi ngày đáo hạn của các vị thế qua endpoint danh mục
- Lên kế hoạch trước: Đóng vị thế trước khi đáo hạn nếu bạn muốn tránh thanh toán
- Kiểm tra giá thanh toán: Xác minh giá oracle khớp với kỳ vọng của bạn
- Đăng ký WebSocket: Nhận sự kiện
PositionExpiredtheo thời gian thực để được thông báo ngay lập tức - Duy trì vùng đệm ký quỹ: Đảm bảo đủ ký quỹ cho các khoản thanh toán vị thế short ITM tiềm năng
Thanh toán trên chuỗi (On-Chain)
Trên mạng chính, giá thanh toán được đăng lên chuỗi sau khi tính toán:
- Oracle tính TWAP thanh toán và công bố giá đáo hạn cuối cùng.
- Hợp đồng Exchange có thể xác minh giá thanh toán đã đăng trên chuỗi.
- Dữ liệu oracle trực tiếp không được truyền lên chuỗi. Giá thanh toán cuối cùng là tham chiếu trên chuỗi cho việc đáo hạn.
Xem thêm:
- Thanh lý: Điều gì xảy ra nếu ký quỹ không đủ
- Ký quỹ danh mục: Cách các vị thế ảnh hưởng đến ký quỹ
- Ký quỹ tiêu chuẩn: Tính toán ký quỹ theo từng vị thế