Ончейн-матчинг

Книга ордерів NeutronX зберігається в стані мережі, а зводять її валідатори в кожному блоці. Правила зведення однакові для всіх учасників і перевіряються кожним валідатором.

Де відбувається зведення

Пропозер бере нові ордери з мемпулу й зводить їх з книгою. Отримані угоди він кладе в першу транзакцію блоку. Інші валідатори повторюють зведення й відхиляють блок у разі розбіжності. Угоди розраховуються на початку виконання блоку.

Детальніше - в «Архітектурі».

Пріоритет

  1. Ціна. Найкраща ціна виконується першою.
  2. Блок. На одному рівні ціни раніше йде ордер з ранішого блоку.
  3. Порядок у блоці. Усередині одного блоку раніше йде ордер, який раніше стоїть у блоці. Полями ордера, зокрема 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