accueil

Premiers pas

Concepts

Les marchés Seeryx pour les développeurs : slugs, durées et états des manches, carnet miroir, prix, scissions, règlement et versements.

Marchés et manches

Un marché crypto, c’est un actif et une durée de manche : BTC 5m, ETH 1h, BNB 1d. Il se déroule comme une suite de manches, chacune étant une question distincte avec son propre carnet d’ordres, ses propres parts et son propre résultat. GET /api/markets liste les marchés.

tfDuréeDébutNégociation anticipée
5m5 minutesÀ chaque multiple de 300 s (UTC)La manche en cours et les 10 suivantes
15m15 minutesÀ chaque multiple de 900 sLa manche en cours et les 10 suivantes
1h1 heureÀ chaque heure pileLa manche en cours et la suivante
1d24 heures12 h, heure de New YorkLa manche en cours et la suivante

Les manches qui n’ont pas commencé se négocient aussi : leur prix de départ reste le prix à la seconde exacte de leur ouverture, si bien qu’un ordre passé tôt porte sur une période ultérieure.

Slugs des manches

Une manche est nommée {asset}-updown-{tf}-{start} : l’actif en minuscules, la durée et le début en secondes Unix. La manche se termine à 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

Une manche d’un jour commence à 12 h, heure de New York (16 h UTC en été, 17 h en hiver), et dure toujours 24 heures : les deux jours où New York change d’heure, les manches se chevauchent ou laissent un trou d’une heure. Prenez le début du jour suivant dans GET /api/rounds/:slug ou dans la manche en cours une fois qu’elle est listée, plutôt que d’ajouter 86 400.

Marchés événementiels

Un marché événementiel est une issue d’une question (« La Fed baissera-t-elle ses taux en décembre ? »). Son slug commence par ev-. Il se négocie comme une longue manche unique : même carnet d’ordres, mêmes ordres, même WebSocket et mêmes frais, up signifiant Oui et down Non. Le trading s’arrête à closesAt ; l’Optimistic Oracle d’UMA tranche ensuite. GET /api/events les liste, GET /api/event-groups les regroupe en questions.

États des manches

statusSignificationNégociable
upcomingAvant son débutOui, si elle fait partie des manches négociables à l’avance
liveEntre le début et la finJusqu’à 5 secondes avant la fin ("Round is closing" ensuite)
liveAprès la fin, outcome encore null : le prix de clôture est en cours d’enregistrementNon
settledoutcome vaut up ou downNon ; les parts gagnantes sont payées

Les marchés événementiels ont les états open, closed (trading terminé, en attente d’UMA) et resolved, avec outcome yes ou no.

Un carnet, deux côtés

Hausse et Baisse forment un seul carnet d’ordres. Un ordre d’achat Hausse à p est un ordre de vente Baisse à 100 − p : ?side=up et ?side=down montrent donc les mêmes ordres, de part et d’autre. Deux acheteurs peuvent négocier entre eux : un acheteur de Hausse à 60¢ et un acheteur de Baisse à 40¢ paient ensemble 1,00 $, ce qui crée une part Hausse et une part Baisse. De même, un vendeur de Hausse et un vendeur de Baisse fusionnent leurs parts pour les reconvertir en dollars.

Prix et tailles

RègleValeur
PrixCents entiers de 1 à 99 ; dixièmes de cent de 0,1 à 0,9 et de 99,1 à 99,9 lorsque finePrices de GET /api/funds est activé (c’est le cas sur seeryx.com). Tout autre prix : 400 "Invalid limit"
PartsJusqu’à 4 décimales ; à un prix situé entre deux cents entiers, par pas de 0,001
Ordre minimum5 parts (minOrderShares de GET /api/fees) : un ordre à cours limité d’au moins ce nombre de parts, un achat au marché d’un montant qui permet de les acheter au meilleur prix vendeur, une vente d’au moins ce nombre ou de toutes les parts libres que vous détenez. En dessous : 400 below_minimum
AppariementMeilleur prix d’abord, puis l’ordre le plus ancien ; une exécution se fait au prix de l’ordre en attente

Scission et fusion

POST /api/split transforme des USDC en un même nombre de parts Hausse et Baisse, à 1,00 $ la paire ; POST /api/merge reconvertit les paires en 1,00 $ chacune. Les deux opérations sont gratuites et exigent au moins 5 paires. Une paire rapporte toujours exactement 1,00 $ à la fin : un teneur de marché qui détient les deux côtés peut donc les fusionner pour libérer aussitôt ses liquidités.

Règlement sur Solana

Un ordre est apparié aussitôt, et vos liquidités et vos positions changent au même instant. Chaque exécution est ensuite réglée par le programme Seeryx dans une transaction Solana distincte, généralement en quelques secondes. Votre activité affiche cette transaction :

txStatusSignification
pendingEnvoyée à Solana, pas encore confirmée
confirmedRéglée sur la blockchain
failedLe programme l’a refusée : l’opération est annulée sur votre compte

Une transaction qui n’aboutit pas à temps est renvoyée. Si le programme refuse un règlement (signature expirée, session au-delà de sa limite), l’opération est annulée sur votre compte et apparaît avec le type revert. Les nouveaux ordres sont refusés 5 secondes avant la clôture d’une manche, afin que chaque exécution puisse être réglée avant celle-ci.

Versements et invalidations

  • Les versements sont automatiques. Lorsqu’une manche ou un événement est résolu, chaque part gagnante verse 1,00 $ dans vos liquidités (type d’activité settle). Rien n’est à réclamer.
  • Les manches crypto sont résolues sur le prix Binance à la seconde exacte d’ouverture ou de clôture. Si aucun résultat ne parvient à Solana dans les 15 minutes suivant la clôture, la manche est invalidée et chaque part rapporte 50¢.
  • Les marchés événementiels sont résolus via UMA après la fin du trading. Un marché qu’UMA n’a pas tranché 30 jours après sa clôture est invalidé, et chaque part rapporte 50¢.