Startseite

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.

tfDauerBeginntVorab handelbar
5m5 MinutenJedes Vielfache von 300 s (UTC)Die Live-Runde und die nächsten 10
15m15 MinutenJedes Vielfache von 900 sDie Live-Runde und die nächsten 10
1h1 StundeJede volle StundeDie Live-Runde und die nächste
1d24 Stunden12:00 Uhr New Yorker ZeitDie 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..10

Eine 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

statusBedeutungHandelbar
upcomingVor ihrem BeginnJa, wenn sie zu den vorab handelbaren Runden gehört
liveZwischen Beginn und EndeBis 5 Sekunden vor dem Ende (danach „Round is closing“)
liveNach ihrem Ende, outcome noch null: Der Schlusskurs wird gespeichertNein
settledoutcome ist up oder downNein; 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

RegelWert
PreiseGanze 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“
AnteileBis zu 4 Nachkommastellen; bei einem Preis zwischen ganzen Cent in Schritten von 0,001
Mindestorder5 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
MatchingBester 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:

txStatusBedeutung
pendingAn Solana gesendet, noch nicht bestätigt
confirmedAuf der Blockchain abgewickelt
failedVom 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.