User Channel

Приватный канал для статусов ордеров. Требует L2 авторизации.

Требуется L2 авторизация
Необходимо передать API ключи при подключении. См. Аутентификация.

Подключение с авторизацией

const timestamp = Date.now().toString();
const signature = hmacSHA256(secret, timestamp + "GET/ws/user");

const ws = new WebSocket("wss://ws-subscriptions-clob.polymarket.com/ws/user");

ws.onopen = () => {
  ws.send(JSON.stringify({
    type: "auth",
    apiKey: "your-api-key",
    timestamp: timestamp,
    signature: signature,
    passphrase: "your-passphrase"
  }));
};

Типы событий

order

Уведомление об изменении статуса ордера. Приходит при размещении, частичном исполнении, полном исполнении или отмене. Содержит исполненный и оставшийся объём. Используйте для обновления UI и логики торгового бота без polling /orders.

{
  "event_type": "order",
  "order_id": "0x123...",
  "status": "MATCHED",
  "filled_amount": "50.00",
  "remaining_amount": "50.00",
  "avg_price": "0.65"
}

trade

Уведомление о конкретной сделке по вашему ордеру. Один ордер может генерировать несколько событий trade при частичном исполнении. Содержит точную цену, объём и комиссию каждого fill. Используйте для детального учёта исполнения.

{
  "event_type": "trade",
  "order_id": "0x123...",
  "trade_id": "trade_456",
  "size": "50.00",
  "price": "0.65",
  "fee": "0.25",
  "timestamp": 1705329600
}

Статусы ордеров

СтатусОписание
LIVEАктивный ордер
MATCHEDЧастично/полностью исполнен
CANCELLEDОтменён

Подписка на ордера

// После успешной авторизации
ws.send(JSON.stringify({
  type: "subscribe",
  channel: "user",
  markets: ["0xabc..."]  // condition_ids
}));