Ранбуки
Повний чекліст готовності деску та сертифікаційні тести інтеграції.
Чекліст готовності деску
Перед запуском перевірте:
Підключення до API
- Налаштовано продакшн-ендпоінти
- Ендпоінт перевірки стану відповідає
- З'єднання WebSocket стабільне
Автентифікація
- Підписання EIP-712 працює
- Налаштовано авторизацію агента (за потреби)
- Реалізовано керування nonce
- Протестовано перевірку підпису
Система котирування
- Протестовано пакетне розміщення ордерів
- Перевірено звірку життєвого циклу ордерів
- Реалізовано відстеження виконань
- Протестовано функцію скасування
Контроль ризиків
- MMP налаштовано й протестовано
- Модель маржі зрозуміла
- Перевірено обмеження рівнів
- Реалізовано моніторинг портфеля
Моніторинг
- Оформлено підписки на фіди WebSocket
- Автоматизовано звірку ордерів і виконань
- Налаштовано перевірки стану
- Налаштовано сповіщення
Аварійний вимикач
- Можливість скасувати всі ордери
- Можливість негайно від'єднатися
- Задокументовано аварійні процедури
Хеджування
- Перевірено інтеграцію з перпами Hyperliquid
- Реалізовано стратегію дельта-хеджування
- Розрахунок маржі для перпів зрозумілий
Розрахунок
- Протестовано обробку експірації
- Перевірено розрахунок за позиціями
- Джерело референсної ціни зрозуміле
Сертифікаційні тести інтеграції
Тест 1: Розміщення ордера
Кроки:
- Розмістіть один ордер через
POST /order - Перевірте, що статус у відповіді на ордер
ACKEDабоOPEN - Переконайтеся, що ордер з'являється в
GET /orders?wallet=... - Перевірте, що отримано повідомлення WebSocket
order_updates
Очікуваний результат: ордер успішно розміщено, оновлення статусу отримано
Тест 2: Пакетне розміщення ордерів
Кроки:
- Розмістіть 10 ордерів через
POST /bulk_order - Перевірте, що всі ордери прийнято
- Перевірте статуси ордерів через REST і WS
- Переконайтеся, що немає помилок підпису чи автентифікації
Очікуваний результат: усі ордери успішно розміщено
Тест 3: Відстеження виконань
Кроки:
- Розмістіть ордер, який буде виконано
- Відстежуйте канал WebSocket
fills - Перевірте, що отримано виконання з правильним
order_id - Переконайтеся, що виконання з'являється в
GET /fills?wallet=... - Перевірте, що статус ордера оновився до
FILLED
Очікуваний результат: виконання відстежуються коректно, статус ордера оновлено
Тест 4: Відстеження часткових виконань
Кроки:
- Розмістіть ордер, який буде виконано частково
- Відстежуйте канали WebSocket
fillsіorder_updates - Перевірте, що часткове виконання надходить у
fills - Перевірте, що
order_updatesповідомляєPARTIALLY_FILLEDз накопиченимfilled_size - Згрупуйте виконання за
order_idі перевірте, що загальна сума дорівнюєfilled_size
Очікуваний результат: обсяги окремих виконань у fills, накопичений виконаний обсяг у order_updates
Тест 5: Скасування ордера
Кроки:
- Розмістіть ордер через
POST /order - Скасуйте ордер через
DELETE /order - Перевірте статус ордера:
CANCELED - Переконайтеся, що отримано повідомлення WebSocket
order_updates
Очікуваний результат: ордер успішно скасовано, оновлення статусу отримано
Тест 6: Спрацювання MMP
Кроки:
- Налаштуйте MMP через підписаний
POST /mmp-config. НадсилайтеX-Hypercall-Fence-Wait: 1, якщо клієнт одразу читатиме проєкцію, і збережіть повернуте значенняX-Hypercall-Fence. - Розмістіть ордери з увімкненим MMP
- Ініціюйте спрацювання MMP, перевищивши ліміти
- Перевірте, що ордери скасовано з причиною MMP
- Переконайтеся, що інші ордери з увімкненим MMP також скасовано
Очікуваний результат: MMP спрацьовує коректно, ордери скасовано
Читання конфігурації MMP також потребує автентифікації. Підпишіть GetMmpConfig і
надішліть його термін дії та підпис у заголовках X-Hypercall-Expires-At-Ms і
X-Hypercall-Signature. Передайте в цьому GET значення X-Hypercall-Fence
з відповіді на запис, щоб дочекатися саме цієї зафіксованої
конфігурації. Записи без X-Hypercall-Fence-Wait: 1 навмисно
не повертають заголовок fence.
Тест 7: Відхилення через маржу
Кроки:
- Розмістіть ордер, що перевищує доступну маржу
- Перевірте, що ордер відхилено з причиною "Insufficient margin"
- Переконайтеся, що причина відхилення містить значення вимоги, капіталу та дефіциту
- Перевірте статус ордера:
REJECTED
Очікуваний результат: ордер відхилено із зрозумілою причиною
Тест 8: Обмеження рівня
Кроки:
- Використайте гаманець, рівень якого дозволяє лише покриті продажі (перевірте
GET /risk/limits?wallet=...) - Спробуйте розмістити ордер на продаж без довгої позиції
- Перевірте, що ордер відхилено з причиною, пов'язаною з рівнем
- Розмістіть ордер на купівлю (має бути успішним)
- Розмістіть ордер на продаж для закриття позиції (має бути успішним)
Очікуваний результат: обмеження рівня застосовуються коректно
Тест 9: Повторне підключення WebSocket
Кроки:
- Підключіться до WebSocket
- Підпишіться на канали
- Від'єднайте WebSocket
- Підключіться повторно з експоненційною затримкою
- Повторно підпишіться на канали
- Опитайте REST, щоб отримати пропущені оновлення
Очікуваний результат: повторне підключення працює, стан відновлено
Тест 10: Звірка портфеля
Кроки:
- Розмістіть ордери та дочекайтеся їх виконання
- Перевірте портфель через
GET /portfolio?wallet=... - Переконайтеся, що позиції відповідають виконанням
- Перевірте коректність використання маржі
- Звірте з оновленнями WebSocket
portfolio
Очікуваний результат: стан портфеля точний, звірка успішна
Готовність до продакшну
Чекліст перед продакшном
- Усі інтеграційні тести пройдено
- Налаштовано моніторинг і сповіщення
- Аварійний вимикач протестовано
- Задокументовано аварійні процедури
- Команду навчено реагуванню на інциденти
- Визначено контакти підтримки
Чекліст запуску
- Сертифікаційні тести пройдено з малим обсягом у продакшні
- Продакшн-ендпоінти перевірено
- Дашборди моніторингу готові
- Налаштовано сповіщення
- Складено графік чергувань команди
- Документацію переглянуто
Посилання
- Швидкий старт: Швидкий старт
- Довідник API: REST API
- Помилки та відхилення: Помилки
- Порядок дій при інцидентах: Інциденти