Bu sayfa otomatik olarak çevrilmiştir. İngilizce orijinal kanonik versiyondur. İngilizce oku
Ana içeriğe geç

API ile İşlem

Bir piyasa yapıcı, kotasyon sistemi veya emir yürütme servisini Hypercall ile entegre ediyorsanız bu rehberi kullanın.

Üretim API'si

REST temel URL: https://api.hypercall.xyz

WebSocket URL: wss://api.hypercall.xyz/ws

Testnet durumu: Hypercall daha fazla testnet HYPE edinene kadar testnet geçici olarak devre dışıdır. Hypercall size özel bir ortam sağlamadığı sürece yeni piyasa yapıcı entegrasyonları üretim ortamını kullanmalıdır.

İzin listesindeki akışlar

Gösterge niteliğindeki kotasyon sağlayıcı akışları henüz genel kullanıma açık değildir. Hypercall bunu onaylı entegrasyonlar için etkinleştirebilir, ancak olağan piyasa yapıcı entegrasyonları REST piyasa verilerinin yanı sıra kimliği doğrulanmış emir, gerçekleşme (fill) ve portföy WebSocket kanallarını kullanmalıdır.

Entegrasyon Kontrol Listesi

  • İşlem cüzdanı: EIP-712 tipli verileri imzalayabilen EVM cüzdanı.
  • Fonlama: app.hypercall.xyz üzerinden üretim USDC fonlaması.
  • Erişim: piyasa yapıcı limitleri, yazıcı (writer) erişimi veya gösterge niteliğinde kotasyon sağlayıcı akışına ihtiyacınız varsa Hypercall ile iletişime geçin.
  • Ortam: yukarıdaki üretim REST ve WebSocket URL'leri. Testnet'in kullanılabilir olduğunu varsaymayın.
  • Mutabakat: kendi istemci emir ID'lerinizi, nonce'larınızı, emirlerinizi, gerçekleşmelerinizi ve pozisyon anlık görüntülerinizi saklayın.

Entegrasyon Yolları

Rust Crate'leri

Hypercall, desteklenen entegrasyon yüzeyi için herkese açık Rust crate'leri yayınlar:

Herkese açık Rust deposu: github.com/hypercall-public/hypercall-rust.

CrateKullanım
hypercall-clientREST istemcisi, WebSocket istemcisi, EIP-712 imzalama yardımcıları, yerel imzalama ve AWS KMS imzalama
hypercall-sdk-typesİstemci tarafından paylaşılan herkese açık istek ve yanıt DTO'ları
hypercall-ws-protocolHerkese açık WebSocket mesaj türleri
hypercall-hyperliquidHyperliquid üzerinde de hedge yapan entegrasyonlar için isteğe bağlı Hyperliquid yardımcı crate'i
hypercall-liquidatorStandart Teminat likidasyonu için referans istemci. Normal piyasa yapıcılık için gerekli değildir

Mümkün olduğunda crate'leri kullanın. Bunlar, elle yapıldığında hataya açık olan güncel imzalama alan adını, istek yapılarını, rota kurallarını ve string biçimlendirme kurallarını içerir.

Ham REST ve WebSocket

Rust kullanmıyorsanız, doğruluk kaynağı olarak API Referansı, Kimlik Doğrulama ve İmzalama ve WebSocket API sayfalarını kullanın.

1. Piyasaları Keşfedin

Aktif piyasaları ve enstrüman spesifikasyonlarını yükleyerek başlayın:

curl https://api.hypercall.xyz/markets
curl "https://api.hypercall.xyz/instrument-specs?currency=BTC"
curl "https://api.hypercall.xyz/options-summary?currency=BTC"

Kullanım:

  • Listelenen dayanak varlık ve vade sonu grupları için GET /markets.
  • İşlem yapılabilir opsiyon spesifikasyonları için GET /instrument-specs?currency=BTC.
  • Zincir düzeyinde en iyi alış, en iyi satış, mark fiyatı ve Greeks tarzı özet alanları için GET /options-summary?currency=BTC.

2. İmzalamayı Ayarlayın

Yazma işlemleri EIP-712 imzaları kullanır.

  • Üretim zincir ID'si: 999
  • Alan adı (domain name): Hypercall
  • Alan sürümü (domain version): 1
  • Doğrulayıcı kontrat: 0x0000000000000000000000000000000000000000

Piyasa yapıcılar genellikle bir ajan (agent) cüzdanı kullanmalıdır:

  1. Sahip cüzdanı, POST /approve-agent ile bir ajanı onaylar.
  2. Ajan cüzdanı, sahip cüzdanı adına emirleri ve iptalleri imzalar.
  3. Sahip cüzdanı, portföy, fonlama ve risk kimliği olarak kalır.

Tam struct'lar ve alan adları için Kimlik Doğrulama ve İmzalama sayfasına bakın.

3. Toplu Emirlerle Kotasyon Verin

Piyasa yapıcı kotasyonları için route: "book_only" ile POST /bulk_order kullanın.

curl -X POST https://api.hypercall.xyz/bulk_order \
-H "Content-Type: application/json" \
-d '{
"orders": [
{
"wallet": "0x...",
"symbol": "BTC-20260131-100000-C",
"price": "100.0",
"size": "0.1",
"side": "Buy",
"tif": "gtc",
"route": "book_only",
"client_id": "mm-bid-1",
"mmp_enabled": true,
"nonce": 1001,
"signature": "0x..."
},
{
"wallet": "0x...",
"symbol": "BTC-20260131-100000-C",
"price": "101.0",
"size": "0.1",
"side": "Sell",
"tif": "gtc",
"route": "book_only",
"client_id": "mm-ask-1",
"mmp_enabled": true,
"nonce": 1002,
"signature": "0x..."
}
]
}'

Önemli kurallar:

  • Hem imzalanan yükte hem de JSON gövdesinde price ve size string'dir.
  • İmza ile JSON gövdesi arasında string biçimlendirme tam olarak eşleşmelidir.
  • Toplu emir boyutu istek başına 50 emirle sınırlıdır.
  • Toplu rota yalnızca emir defteri içindir. route: "best_execution" ve route: "rfq_only" tekil emir yollarıdır, toplu kotasyon yolları değildir.
  • Çoğu işlem reddi HTTP 200 döner ve status: "REJECTED" içerir. Her sonucu daima inceleyin.

4. Kotasyonları Yenileyin

Mevcut kotasyon emirlerini iptal edip yerlerine yenilerini tek bir istekte yerleştirmek istediğinizde PUT /bulk_order kullanın.

curl -X PUT https://api.hypercall.xyz/bulk_order \
-H "Content-Type: application/json" \
-d '{
"replacements": [
{
"wallet": "0x...",
"order_id": 12345,
"symbol": "BTC-20260131-100000-C",
"price": "99.5",
"size": "0.1",
"side": "Buy",
"tif": "gtc",
"route": "book_only",
"client_id": "mm-bid-1",
"nonce": 1003,
"signature": "0x..."
}
]
}'

PUT /bulk_order, yeni grubu oluşturmadan önce eski grubu iptal eder. Sonuçlar, istek sırasına göre her değiştirme için ayrı ayrı döndürülür. Başarısız bir iptal, o değiştirme emrinin oluşturulmasını engeller.

Gecikmeye duyarlı tek bir değiştirme için PUT /order kullanın.

5. Güncellemelere Abone Olun

Üretim WebSocket'ine bağlanın:

const ws = new WebSocket("wss://api.hypercall.xyz/ws");

ws.onopen = () => {
ws.send(JSON.stringify({ type: "Authenticate", wallet: "0xYourWallet" }));
ws.send(JSON.stringify({ type: "Subscribe", channel: "order_updates" }));
ws.send(JSON.stringify({ type: "Subscribe", channel: "fills" }));
ws.send(JSON.stringify({ type: "Subscribe", channel: "portfolio" }));
};

Kullanım:

  • Emir durumu değişiklikleri için order_updates. Kısmi gerçekleşme güncellemeleri burada bilinçli olarak atlanır.
  • Kısmi gerçekleşmeler ve gerçekleşen işlemler için doğruluk kaynağı olarak fills.
  • Hesap durumu güncellemeleri için portfolio.
  • Herkese açık piyasa verileri için orderbook, trades, options_chain ve index_prices.

Kanal formatları ve bağlantı canlılığı davranışı için WebSocket API sayfasına bakın.

6. Durumu Mutabık Kılın

WebSocket bağlantınız sağlıklı olsa bile bir mutabakat döngüsü çalıştırın.

DurumREST yedeğiWebSocket kanalı
EmirlerGET /orders?wallet=...order_updates
GerçekleşmelerGET /fills?wallet=...fills
PortföyGET /portfolio?wallet=...portfolio
PiyasalarGET /markets, GET /instrument-specsmarket_updates, options_chain

Önerilen döngü:

  1. Başlangıçta piyasaları yükleyin.
  2. Kotasyon vermeden önce açık emirleri ve en son gerçekleşmeleri yükleyin.
  3. WebSocket güncellemelerine abone olun.
  4. Deterministik istemci ID'leri ile kotasyon verin.
  5. Bağlantı kopmalarından veya kaçırılan mesajlardan kurtulmak için REST'i periyodik olarak sorgulayın.
  6. REST ve WebSocket durumları yeniden uyuşana kadar bilinmeyen durumda kotasyon vermeyi durdurun.

7. Lansman Kapsamını Anlayın

Mainnet Alpha bilinçli olarak sınırlandırılmıştır.

  • Teminat: Standart Teminat aktiftir. Portföy Teminatı genel olarak etkin değildir.
  • Yazıcı erişimi: kısa opsiyon pozisyonu almak onaylı erişim gerektirir.
  • Gösterge niteliğinde akış: kotasyon sağlayıcı akışları izin listesine tabidir ve henüz genel bir kamuya açık entegrasyon yolu değildir.
  • Likidasyon araçları: herkese açık liquidator crate'i, Standart Teminat likidasyon iş akışları içindir, olağan piyasa yapıcılık için değildir.
  • Testnet: Hypercall daha fazla testnet HYPE edinene kadar kullanılamaz.

Sık Karşılaşılan Sorunlar

İmza doğrulaması başarısız

  • price ve size değerlerinin JSON string olduğunu kontrol edin.
  • İmzalanan string'lerin gönderilen string'lerle tam olarak eşleştiğini kontrol edin.
  • Üretim için zincir ID'si 999 kullanın.
  • Her imzalı yazma işlemi için yeni bir nonce kullanın.
  • İmzalayanın cüzdanın kendisi veya onaylı bir ajan olduğunu doğrulayın.

Yetersiz teminat

  • GET /portfolio?wallet=... kontrol edin.
  • Teminat ekleyin veya kotasyon büyüklüğünü azaltın.
  • Cüzdanınızın, kotasyon verdiğiniz strateji için gereken erişim seviyesine sahip olduğunu doğrulayın.

Erişim veya karşılık nedeniyle satış reddedildi

  • Satışın, gerçekleşmiş uzun pozisyon envanteriyle karşılandığından emin olun veya yazıcı erişimi için Hypercall ile iletişime geçin.
  • Yeni bir cüzdan için yazıcı erişiminin etkin olduğunu varsaymayın.

WebSocket'te gerçekleşme gelmiyor

  • Kimliği doğrulanmış kanallara abone olmadan önce bir Authenticate mesajı gönderin.
  • Yalnızca order_updates değil, fills kanalına da abone olun.
  • Yeniden bağlandıktan sonra GET /fills?wallet=... ile yedekten kurtarın.

Sonraki Adımlar