Ончейн-матчинг
Книга ордерів NeutronX зберігається в стані мережі, а зводять її валідатори в кожному блоці. Правила зведення однакові для всіх учасників і перевіряються кожним валідатором.
Де відбувається зведення
Пропозер бере нові ордери з мемпулу й зводить їх з книгою. Отримані угоди він кладе в першу транзакцію блоку. Інші валідатори повторюють зведення й відхиляють блок у разі розбіжності. Угоди розраховуються на початку виконання блоку.
Детальніше - в «Архітектурі».
Пріоритет
- Ціна. Найкраща ціна виконується першою.
- Блок. На одному рівні ціни раніше йде ордер з ранішого блоку.
- Порядок у блоці. Усередині одного блоку раніше йде ордер, який раніше стоїть у блоці. Полями ордера, зокрема
client_id, чергу не зсунути.
Ціна угоди
| Випадок | Ціна |
|---|---|
| Лімітні ордери перетнулися під час зведення в блоці | Ціна ордера, що раніше стояв у книзі, якщо вона в коридорі виконання, інакше ціна другого ордера |
| Ринковий ордер | Ціна ордера в книзі, з яким він зводиться |
| Системні ордери: ліквідації, SL/TP, TWAP, POV, закриття позиції | Ціна ордера в книзі, з яким він зводиться |
Ціна оракула й mark-ціна ніколи не задають ціну угоди. Вони потрібні лише для маржі, ліквідацій і спрацювання умовних ордерів.
Наслідок першого рядка: ордер, що перетнув книгу пізніше, отримує ціну ордера, який у ній стояв, як на будь-якій безперервній книзі.
Цінові коридори
| Коридор | Значення | Що обмежує |
|---|---|---|
| Розміщення | 50% від ціни оракула | Як далеко від оракула можна виставити ордер |
| Виконання | 1% від ціни оракула, 0.5% для BTC і ETH | За якою ціною угода може пройти |
Ордер за коридором виконання стоїть у книзі й виконається, коли ціна оракула наблизиться. Коридори задає governance для кожного ринку.
Самоторгівля і post-only
- Самоторгівля. Ордер не зводиться із зустрічним ордером того самого власника. Такий ордер пропускається, і зведення йде далі книгою.
- Post-only. Post-only ніколи не забирає ліквідність. Якщо він виконався б одразу під час розміщення або пізніше через рух ціни оракула, він скасовується.
Якщо розрахунок угоди не пройшов
Кожна угода розраховується окремо. Якщо розрахунок не проходить, наприклад в однієї сторони бракує маржі, угода скасовується повністю. Ордер сторони, через яку розрахунок не пройшов, знімається з книги. Друга сторона лишається в книзі.
Ліміти
| Ліміт | Значення |
|---|---|
| Мінімальний розмір ордера | 10 USDC |
| Відкритих ордерів на субакаунт | 500 |
| Розміщень і замін на адресу за блок | 30, кожен ордер пакета рахується окремо |
| Активних ордерів у всій мережі | 500 000 |