WebSocket Reference
user:copy-trade
Copy trade execution events
The user:copy-trade channel notifies the authenticated user when a copy trade is detected, executed, or fails. This channel covers the full lifecycle of automated trades triggered by copy trade subscriptions.
Subscribe
{ "event": "subscribe", "data": { "channel": "user:copy-trade" } }Unsubscribe
{ "event": "unsubscribe", "data": { "channel": "user:copy-trade" } }Server Broadcast
{
"channel": "user:copy-trade",
"data": {
"event": "executed",
"subscriptionId": "a9b8c7d6-e5f4-3210-9876-543210fedcba",
"targetWalletAddress": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"targetDisplayName": "vitalik.eth",
"orderId": "d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f9a",
"marketId": "c5a2e7f1-3b4d-4e6a-8f9c-1d2e3f4a5b6c",
"marketTitle": "Will Ethereum merge to PoS by Q2 2026?",
"side": "yes",
"action": "buy",
"price": "0.820000",
"quantity": "50.000000",
"total": "41.000000",
"sizingStrategy": "fixed",
"originalTradeSize": "500.000000",
"executedAt": "2026-03-27T14:30:10.000Z"
}
}Payload Schema
| Field | Type | Description |
|---|---|---|
event | string | Event type: detected, executed, failed, skipped |
subscriptionId | string | Copy trade subscription ID (UUID) |
targetWalletAddress | string | Wallet address being copied |
targetDisplayName | string? | Display name of the target trader |
orderId | string? | Order ID created by the copy trade (present for executed) |
marketId | string | Market the trade was placed in |
marketTitle | string | Market title for display |
side | string | yes or no |
action | string | buy or sell |
price | string | Execution price |
quantity | string | Share quantity traded |
total | string | Total USD value of the copy trade |
sizingStrategy | string | fixed or percentage -- how the trade size was calculated |
originalTradeSize | string | The target trader's original trade size |
executedAt | string | ISO 8601 timestamp |
Event Types
| Event | Description |
|---|---|
detected | A trade by the target wallet was detected and is being processed |
executed | The copy trade order was successfully submitted and filled |
failed | The copy trade execution failed (e.g., insufficient balance, slippage exceeded) |
skipped | The trade was skipped due to filter rules (category, min liquidity, probability bounds, daily cap) |
Notes
- This channel requires authentication. Only the authenticated user's copy trade events are delivered.
- The
sizingStrategyfield indicates whether the copy trade used a fixed USD amount or a percentage of the target's trade size - The
skippedevent includes areasonfield explaining why the trade was filtered out - Copy trades that fail include an
errorMessagefield with details - Each copy trade order is linked back to its subscription via the
copyTradeSubIdfield on the Order model