Skip to main content
The collateral channel ("collateral") streams pUSD wrap/unwrap events — deposits and withdrawals of the V2 trading collateral. This channel is opt-in and separate from the activity channel.
Collateral events are V2-only. Users depositing via USDC.e on V1 won’t appear here. Subscribe to the activity channel for V1 collateral flows via split/merge/redeem.

Subscribe

{
  "action": "subscribe",
  "platform": "polymarket",
  "version": 1,
  "type": "collateral",
  "filters": { "users": ["0x3b27d0fb..."] }
}

Filter Types

FilterDescriptionExample
usersWallet addresses["0x123...", "0xabc..."]
Wildcard ["*"]All collateral events{"users": ["*"]}
condition_ids, market_slugs, and token_ids are not supported — collateral flow isn’t tied to a specific market.

Event Types

polyusd_wrapped

A user deposited underlying collateral (e.g. USDC.e) and received pUSD.
{
  "type": "event",
  "subscription_id": "sub_xxx",
  "data": {
    "event_type": "polyusd_wrapped",
    "user": "0x3b27d0fb...",
    "asset": "0x2791bca1f2de4661ed88a30c99a7a9449aa84174",
    "amount": 45000000,
    "amount_normalized": 45,
    "tx_hash": "0x...",
    "log_index": "0x9ed",
    "block_number": "0x51c9418",
    "timestamp": 1776638042,
    "version": 2
  }
}

polyusd_unwrapped

A user burned pUSD and received underlying collateral back.
{
  "type": "event",
  "subscription_id": "sub_xxx",
  "data": {
    "event_type": "polyusd_unwrapped",
    "user": "0x3b27d0fb...",
    "asset": "0x2791bca1f2de4661ed88a30c99a7a9449aa84174",
    "amount": 10000000,
    "amount_normalized": 10,
    "tx_hash": "0x...",
    "log_index": "0x3a2",
    "block_number": "0x51c9500",
    "timestamp": 1776638200,
    "version": 2
  }
}

Field Reference

FieldTypeDescription
event_type"polyusd_wrapped" | "polyusd_unwrapped"Wrap = deposit, Unwrap = withdrawal
userstringEnd-recipient of the operation
assetstringUnderlying ERC-20 address (typically USDC.e 0x2791bca1...)
amountnumberRaw amount (6 decimals, same as USDC)
amount_normalizednumberHuman-readable amount
tx_hashstringTransaction hash
log_indexstringLog index within the transaction (hex)
block_numberstringBlock number (hex)
timestampnumberUnix timestamp in seconds
versionnumberAlways 2

Example: Tracking Wallet Deposits

ws.onmessage = (event) => {
  const msg = JSON.parse(event.data);

  if (msg.type === 'event' && msg.data.event_type === 'polyusd_wrapped') {
    const data = msg.data;
    console.log(`Deposit: $${data.amount_normalized} from ${data.user}`);
    console.log(`Asset: ${data.asset}`);
    console.log(`Tx: ${data.tx_hash}`);
  }

  if (msg.type === 'event' && msg.data.event_type === 'polyusd_unwrapped') {
    const data = msg.data;
    console.log(`Withdrawal: $${data.amount_normalized} to ${data.user}`);
  }
};