головна сторінка

Початок роботи

Основні поняття

Як працюють ринки Seeryx для розробників: slug раундів і подій, тривалості, стани раундів, дзеркальна книга ордерів, ціни, розділення, розрахунки й виплати.

Ринки й раунди

Криптовалютний ринок — це актив і тривалість раунду: BTC 5m, ETH 1h, BNB 1d. Він працює як ланцюжок раундів, кожен з яких — окреме питання з власною книгою ордерів, власними частками й власним результатом. GET /api/markets повертає список ринків.

tfТривалістьПочатокТоргівля заздалегідь
5m5 хвилинМоменти, кратні 300 с (UTC)Поточний раунд і 10 наступних
15m15 хвилинМоменти, кратні 900 сПоточний раунд і 10 наступних
1h1 годинаЩогодини, на початку годиниПоточний раунд і наступний
1d24 години12:00 за нью-йоркським часомПоточний раунд і наступний

Торгуються й раунди, які ще не почалися: їхня ціна на початку однаково буде ціною на межі раунду, тож ордер, розміщений заздалегідь, — це прогноз на пізніший проміжок часу.

Ідентифікатори раундів (slug)

Раунд має назву {asset}-updown-{tf}-{start}: актив малими літерами, тривалість і початок у секундах Unix. Раунд закінчується в 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

Денний раунд починається о 12:00 за нью-йоркським часом (о 16:00 UTC влітку, о 17:00 узимку) і завжди триває 24 години, тож у два дні, коли Нью-Йорк переводить годинник, раунди перекриваються або між ними виникає проміжок в одну годину: беріть початок наступного дня з GET /api/rounds/:slug або з поточного раунду, щойно він з’явиться в списку, а не додавайте 86 400.

Подієві ринки

Подієвий ринок — це один результат питання («Чи знизить ФРС ставку в грудні?»). Його slug починається з ev-. Він торгується як один довгий раунд: та сама книга ордерів, ордери, WebSocket і комісії, причому up означає YES, а down — NO. Торги припиняються в closesAt; потім результат визначає Optimistic Oracle протоколу UMA. GET /api/events повертає їх список, GET /api/event-groups групує їх у питання.

Стани раунду

statusЗначенняТоргується
upcomingДо свого початкуТак, якщо він серед раундів, що торгуються заздалегідь
liveМіж початком і кінцемДо моменту за 5 секунд до кінця (після цього — "Round is closing")
liveПісля кінця, outcome ще null: ціна закриття зберігаєтьсяНі
settledoutcome дорівнює up або downНі; виграшні частки оплачуються

Подієві ринки мають стани open, closed (торги завершено, очікування UMA) і resolved з outcome yes або no.

Одна книга, дві сторони

«Вгору» і «Вниз» — одна книга ордерів. Ордер на купівлю «Вгору» за ціною p — це ордер на продаж «Вниз» за 100 − p, тож ?side=up і ?side=down показують ті самі ордери з різних сторін. Двоє покупців можуть укласти угоду між собою: покупець «Вгору» за 60¢ і покупець «Вниз» за 40¢ разом сплачують 1,00 $, і з них випускається одна частка «Вгору» й одна частка «Вниз». Так само продавець «Вгору» і продавець «Вниз» об’єднують свої частки назад у долари.

Ціни й обсяги

ПравилоЗначення
ЦіниЦілі центи від 1 до 99; десяті частки цента від 0,1 до 0,9 і від 99,1 до 99,9, якщо в GET /api/funds увімкнено finePrices (на seeryx.com увімкнено). Будь-яка інша ціна: 400 "Invalid limit"
ЧасткиДо 4 знаків після коми; за ціни між цілими центами — з кроком 0,001
Мінімальний ордер5 часток (minOrderShares з GET /api/fees): лімітний ордер — на стільки часток, ринкова купівля — на суму, що купує їх за найкращою ціною продажу, продаж — стільки часток або всі ваші вільні частки. Менше: 400 below_minimum
Зіставлення ордерівСпершу найкраща ціна, потім найстаріший ордер; виконання відбувається за ціною ордера, що стоїть у книзі

Розділення й об’єднання

POST /api/split перетворює USDC на однакову кількість часток «Вгору» і «Вниз», 1,00 $ за пару; POST /api/merge перетворює пари назад, по 1,00 $ за кожну. Обидві операції безкоштовні й потребують щонайменше 5 пар. Пара в кінці завжди приносить рівно 1,00 $, тож маркетмейкер, який тримає обидві сторони, може об’єднати їх і одразу вивільнити кошти.

Розрахунок у мережі Solana

Ордер зіставляється одразу, і ваші кошти й позиції змінюються в ту саму мить. Потім кожне виконання проходить розрахунок у програмі Seeryx окремою транзакцією в мережі Solana, зазвичай за лічені секунди. Ваша активність показує цю транзакцію:

txStatusЗначення
pendingНадіслано в мережу Solana, ще не підтверджено
confirmedРозрахунок у блокчейні пройшов
failedПрограма відхилила його: угоду у вашому акаунті скасовано

Транзакцію, яка не потрапила в блокчейн вчасно, надсилають повторно. Якщо програма відхиляє розрахунок (прострочений підпис, сесія понад свій ліміт), угоду у вашому акаунті скасовують, і вона відображається з типом revert. Нові ордери не приймаються за 5 секунд до закриття раунду, щоб кожне виконання встигло пройти розрахунок.

Виплати й анулювання

  • Виплати автоматичні. Коли результат раунду чи події визначено, кожна виграшна частка приносить 1,00 $ на ваші кошти (тип активності settle). Нічого не потрібно запитувати.
  • Результати криптораундів визначаються за ціною Binance у секунду межі раунду. Якщо результат не надійде в мережу Solana протягом 15 хвилин після закриття, раунд анулюють, і кожна частка приносить 50¢.
  • Результати подієвих ринків визначаються через UMA після закриття торгів. Ринок, щодо якого UMA не затвердила відповідь через 30 днів після закриття, анулюють, і кожна частка приносить 50¢.