Erste Schritte
Konzepte
Wie Seeryx-Märkte für Entwickler funktionieren: Slugs, Rundendauer, Rundenzustände, das gespiegelte Orderbuch, Preise, Aufteilung, Abwicklung, Auszahlung.
Märkte und Runden
Ein Krypto-Markt ist ein Asset und eine Rundendauer: BTC 5m, ETH 1h, BNB 1d. Er läuft als Kette von Runden, jede eine eigene Frage mit eigenem Orderbuch, eigenen Anteilen und eigenem Ergebnis. GET /api/markets listet die Märkte auf.
| tf | Dauer | Beginnt | Vorab handelbar |
|---|---|---|---|
5m | 5 Minuten | Jedes Vielfache von 300 s (UTC) | Die Live-Runde und die nächsten 10 |
15m | 15 Minuten | Jedes Vielfache von 900 s | Die Live-Runde und die nächsten 10 |
1h | 1 Stunde | Jede volle Stunde | Die Live-Runde und die nächste |
1d | 24 Stunden | 12:00 Uhr New Yorker Zeit | Die Live-Runde und die nächste |
Auch Runden, die noch nicht begonnen haben, werden gehandelt: Ihr Kurs zu Beginn ist trotzdem der Kurs beim Rundenwechsel, eine früh platzierte Order bezieht sich also auf ein späteres Zeitfenster.
Runden-Slugs
Eine Runde heißt {asset}-updown-{tf}-{start}: das Asset in Kleinbuchstaben, die Dauer und der Beginn in Unix-Sekunden. Die Runde endet bei start + length.
const LENGTH = { '5m': 300, '15m': 900, '1h': 3600, '1d': 86_400 } as const;
// the live round's slug comes from GET /api/markets/{asset}/{tf}/current; the ones after it follow on
const live = await api<{ slug: string; end: number }>('/markets/BTC/15m/current');
const next = (k: number) => `btc-updown-15m-${live.end + (k - 1) * LENGTH['15m']}`; // k = 1..10Eine Tagesrunde beginnt um 12:00 Uhr New Yorker Zeit (im Sommer 16:00 UTC, im Winter 17:00 UTC) und dauert immer 24 Stunden. An den zwei Tagen, an denen New York die Uhr umstellt, überlappen sich Runden daher oder lassen eine Lücke von einer Stunde: Nimm den Beginn des nächsten Tages aus GET /api/rounds/:slug oder aus der Live-Runde, sobald sie gelistet ist, statt 86.400 zu addieren.
Ereignismärkte
Ein Ereignismarkt ist ein Ausgang einer Frage („Senkt die Fed im Dezember die Zinsen?“). Sein Slug beginnt mit ev-. Er wird wie eine lange Runde gehandelt: dasselbe Orderbuch, dieselben Orders, derselbe WebSocket und dieselben Gebühren, wobei up für JA und down für NEIN steht. Der Handel endet bei closesAt; danach entscheidet das Optimistic Oracle von UMA. GET /api/events listet sie auf, GET /api/event-groups fasst sie zu Fragen zusammen.
Rundenzustände
| status | Bedeutung | Handelbar |
|---|---|---|
upcoming | Vor ihrem Beginn | Ja, wenn sie zu den vorab handelbaren Runden gehört |
live | Zwischen Beginn und Ende | Bis 5 Sekunden vor dem Ende (danach „Round is closing“) |
live | Nach ihrem Ende, outcome noch null: Der Schlusskurs wird gespeichert | Nein |
settled | outcome ist up oder down | Nein; gewinnende Anteile werden ausgezahlt |
Ereignismärkte haben open, closed (Handel beendet, wartet auf UMA) und resolved mit outcome yes oder no.
Ein Orderbuch, zwei Seiten
Steigt und Fällt sind ein einziges Orderbuch. Ein Kaufgebot für Steigt zu p ist ein Verkaufsangebot für Fällt zu 100 − p, daher zeigen ?side=up und ?side=down dieselben Orders von beiden Seiten. Zwei Käufer können miteinander handeln: Ein Käufer von Steigt zu 60¢ und ein Käufer von Fällt zu 40¢ zahlen zusammen 1,00 $, wodurch ein Steigt- und ein Fällt-Anteil erzeugt werden. Ebenso legen ein Verkäufer von Steigt und ein Verkäufer von Fällt ihre Anteile wieder zu Dollar zusammen.
Preise und Größen
| Regel | Wert |
|---|---|
| Preise | Ganze Cent von 1 bis 99; Zehntelcent von 0,1 bis 0,9 und von 99,1 bis 99,9, wo finePrices von GET /api/funds aktiv ist (auf seeryx.com ist es das). Jeder andere Preis: 400 „Invalid limit“ |
| Anteile | Bis zu 4 Nachkommastellen; bei einem Preis zwischen ganzen Cent in Schritten von 0,001 |
| Mindestorder | 5 Anteile (minOrderShares von GET /api/fees): eine Limit-Order über so viele Anteile, ein Market-Kauf mit einem Betrag, der sie zum besten Verkaufsangebot kauft, ein Verkauf über so viele oder über alle freien Anteile, die du hältst. Darunter: 400 below_minimum |
| Matching | Bester Preis zuerst, dann die älteste Order; eine Ausführung erfolgt zum Preis der Order im Orderbuch |
Aufteilen und Zusammenlegen
POST /api/split macht aus USDC dieselbe Anzahl Steigt- und Fällt-Anteile, 1,00 $ pro Paar; POST /api/merge macht aus Paaren wieder je 1,00 $. Beides ist kostenlos und erfordert mindestens 5 Paare. Ein Paar zahlt am Ende immer genau 1,00 $ aus, daher kann ein Market-Maker, der beide Seiten hält, sie zusammenlegen, um sein Guthaben sofort freizumachen.
Abwicklung auf Solana
Eine Order wird sofort zusammengeführt, und dein Guthaben und deine Positionen ändern sich im selben Moment. Jede Ausführung wird danach vom Seeryx-Programm in einer eigenen Solana-Transaktion abgewickelt, meist innerhalb von Sekunden. Deine Aktivität zeigt diese Transaktion:
| txStatus | Bedeutung |
|---|---|
pending | An Solana gesendet, noch nicht bestätigt |
confirmed | Auf der Blockchain abgewickelt |
failed | Vom Programm abgelehnt: Der Trade wird in deinem Konto rückgängig gemacht |
Eine Transaktion, die nicht rechtzeitig ankommt, wird erneut gesendet. Lehnt das Programm eine Abwicklung ab (eine abgelaufene Signatur, eine Sitzung über ihrem Limit), wird der Trade in deinem Konto rückgängig gemacht und erscheint als Typ revert. Neue Orders werden 5 Sekunden vor Rundenende nicht mehr angenommen, damit jede Ausführung vorher abgewickelt werden kann.
Auszahlungen und Annullierungen
- Auszahlungen erfolgen automatisch. Wenn eine Runde oder ein Ereignis entschieden wird, zahlt jeder gewinnende Anteil 1,00 $ auf dein Guthaben aus (Aktivitätstyp
settle). Du musst nichts anfordern. - Krypto-Runden werden mit dem Binance-Kurs in der Sekunde des Rundenwechsels entschieden. Trifft innerhalb von 15 Minuten nach Rundenende kein Ergebnis auf Solana ein, wird die Runde annulliert, und jeder Anteil zahlt 50¢ aus.
- Ereignismärkte werden nach Handelsschluss über UMA entschieden. Einer, den UMA 30 Tage nach seinem Handelsschluss noch nicht entschieden hat, wird annulliert, und jeder Anteil zahlt 50¢ aus.