POST /api/v1/lmsr/trade
Выполнение сделки через LMSR (Logarithmic Market Scoring Rule) AMM. LMSR обеспечивает гарантированную ликвидность, поэтому сделки исполняются мгновенно по цене, определяемой автоматическим маркет-мейкером.
Аутентификация
Обязательно. Bearer-токен в заголовке Authorization.
Запрос
Параметры тела запроса
| Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
market_id | int64 | Да | ID рынка для сделки. |
side | string | Да | Направление сделки: "buy_yes", "sell_yes", "buy_no" или "sell_no". |
amount_type | string | Да | "spend" (сумма в центах) или "shares" (количество токенов для покупки/продажи). |
amount | int | Да | Сумма в центах (если "spend") или количество акций (если "shares"). |
use_bonus | bool | Нет | Если true, для оплаты сделки используется бонусный баланс. По умолчанию false. |
Пример
curl -X POST https://intotes.com/api/v1/lmsr/trade \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"market_id": 42,
"side": "buy_yes",
"amount_type": "spend",
"amount": 1000
}'
Ответ
200 OK
{
"cost_or_payout_cents": 1000,
"shares_delta": 1538,
"new_position_yes": 1538,
"new_position_no": 0
}
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
cost_or_payout_cents | int | Для покупки: списанная стоимость в центах. Для продажи: полученная выплата в центах. |
shares_delta | int | Количество купленных или проданных акций. |
new_position_yes | int | Обновлённая позиция пользователя по токенам YES после сделки. |
new_position_no | int | Обновлённая позиция пользователя по токенам NO после сделки. |
Как работает ценообразование LMSR
Функция стоимости LMSR:
C(q) = b * ln(sum of e^(q_i / b))
- Стоимость покупки = цена AMM * (1 + комиссия%)
- Выплата при продаже = цена AMM * (1 - комиссия%)
Параметр b контролирует ликвидность рынка. Более высокое значение b означает большую ликвидность и меньшее влияние каждой сделки на цену. Процент комиссии настраивается на стороне сервера.
Ошибки
| Статус | Код | Описание |
|---|---|---|
| 400 | INVALID_AMOUNT | Сумма должна быть положительным целым числом. |
| 402 | INSUFFICIENT_BALANCE | У пользователя недостаточно средств для сделки. |
| 409 | MARKET_PAUSED | Торговля на рынке в данный момент приостановлена. |
| 409 | MARKET_RESOLVED | Рынок уже разрешён. |