Position

position Channel

Subscribe to real-time position updates for a smart account. The service polls positions every second and delivers enriched position data including mark prices and Greeks.

Subscribe

ParameterRequiredDescription
accountYesSmart account address (42 characters with 0x prefix)
marketNoBase token filter: "BTC", "ETH", or "ARB". If omitted, returns positions for all markets.

All positions:

{
  "channel": "position",
  "query": {
    "account": "0x1234567890abcdef1234567890abcdef12345678"
  }
}

ETH market only:

{
  "channel": "position",
  "query": {
    "account": "0x1234567890abcdef1234567890abcdef12345678",
    "market": "ETH"
  }
}

Event: position

{
  "kind": "event",
  "type": "position",
  "timestamp_ms": 1677721600000,
  "data": {
    "margin_account": "550e8400-e29b-41d4-a716-446655440000",
    "market": "ETH",
    "positions": [
      {
        "id": "pos-001",
        "margin_account_id": "550e8400-e29b-41d4-a716-446655440000",
        "instrument_name": "ETH_USDC-PERPETUAL",
        "size": 10.5,
        "average_price": 2450.00,
        "entry_fee": 2.50,
        "instrument_type": "perp",
        "mark_price": 2475.00,
        "current_funding_rate": 0.0001,
        "position_greeks": {
          "delta": 10.5
        }
      },
      {
        "id": "pos-002",
        "margin_account_id": "550e8400-e29b-41d4-a716-446655440000",
        "instrument_name": "ETH_USDC-31OCT25-3000-C",
        "size": 5.0,
        "average_price": 125.50,
        "entry_fee": 1.25,
        "instrument_type": "option",
        "mark_price": 130.00,
        "mark_iv": 0.65,
        "mark_interest": 0.05,
        "position_greeks": {
          "delta": 2.75,
          "gamma": 0.015,
          "theta": -12.5,
          "vega": 45.0,
          "rho": 8.5
        }
      }
    ]
  },
  "subscription": {
    "channel": "position",
    "query": {
      "account": "0x1234567890abcdef1234567890abcdef12345678",
      "market": "ETH"
    }
  }
}

Common Fields

FieldTypeDescription
margin_accountstringMargin account UUID
marketstringBase token ("BTC", "ETH", or "ARB")
positionsarrayArray of position objects

Position Fields (Perpetual)

FieldTypeDescription
idstringPosition UUID
margin_account_idstringParent margin account UUID
instrument_namestringe.g., "ETH_USDC-PERPETUAL"
sizenumberPosition size (positive = long, negative = short)
average_pricenumberAverage entry price
entry_feenumberTotal fees paid on entry
instrument_typestring"perp"
mark_pricenumberCurrent mark price
current_funding_ratenumberCurrent hourly funding rate
position_greeks.deltanumberPosition delta (equals size for perpetuals)

Position Fields (Option)

FieldTypeDescription
idstringPosition UUID
margin_account_idstringParent margin account UUID
instrument_namestringe.g., "ETH_USDC-31OCT25-3000-C"
sizenumberNumber of contracts (positive = long, negative = short)
average_pricenumberAverage entry price per contract
entry_feenumberTotal fees paid on entry
instrument_typestring"option"
mark_pricenumberCurrent mark price per contract
mark_ivnumberMark implied volatility
mark_interestnumberInterest rate used in pricing
position_greeksobjectFull Greeks: delta, gamma, theta, vega, rho

Position events are delivered every second for subscribed accounts. An empty positions array indicates no open positions for that market.