Added

v1.9.0 - 2025-09-29

Added

  • Future settlement projections in risk calculations (POST /calculate_user_risk)

    • New field: future_settlement_projections object containing risk metrics for future expiration dates
    • Benefits: Evaluate how portfolio risk evolves as options approach expiration, better risk planning for future scenarios
    • Capabilities: Each settlement date includes projected margin requirements (im, mm), risk components (matrix_risk, delta_risk, roll_risk), and complete Greeks

    Example response:

    {
      "status": "success",
      "data": {
        "pair": "ETH_USDC",
        "im": 1200.00,
        "mm": 1000.00,
        "greeks": { /* current greeks */ },
        "future_settlement_projections": {
          "2025-10-31": {
            "im": 1440.00,
            "mm": 1200.00,
            "matrix_risk": 960.00,
            "delta_risk": 180.00,
            "roll_risk": 60.00,
            "greeks": {
              "delta": 1.8,
              "gamma": 0.008,
              "vega": 90.0,
              "theta": -12.0,
              "rho": 4.5
            }
          }
        }
      }
    }
  • New orderbook_maker WebSocket channel for market makers

    • Purpose: Dedicated channel for market makers to monitor their own orders efficiently
    • Benefits: Initial snapshot of all maker's active orders, real-time updates for only that maker's activity, reduced bandwidth and processing overhead
    • Migration: Replaces the maker filter previously available in orderbook_options and orderbook_perps channels

    Example subscription:

    {
      "channel": "orderbook_maker",
      "query": {
        "maker": "0x1234567890abcdef1234567890abcdef12345678",
        "pair": "BTC_USDC"  // optional
      }
    }

    Events received:

    • Initial: ob_maker_orders event with all active orders
    • Ongoing: post_order and cancel_order events for that maker only
  • Session revocation enhancements (DELETE /session)

    • New capability: Delete all one-click trading sessions for an API key by omitting the x-one-click header
    • Benefits: Bulk session cleanup, simplified session management for applications with multiple sessions
    • Response: Returns count of revoked sessions

    Example - Revoke all sessions:

    // Without x-one-click header - revokes ALL sessions
    const response = await fetch('/session', {
      method: 'DELETE',
      headers: {
        'x-apikey': 'your-api-key'
        // No x-one-click header
      }
    });
    // Response: { "revokedSessions": 5 }
  • User tracking field in market order responses

    • New field: user_id added to POST market order responses for analytics and tracking
    • Benefits: Better order attribution, enhanced analytics capabilities, improved debugging
    • Location: Returned in response body after successful market order submission

Changed

  • Breaking Change: WebSocket maker filtering moved to dedicated channel

    • Removed: maker parameter no longer available in orderbook_options and orderbook_perps channels
    • Replacement: Use the new orderbook_maker channel for maker-specific filtering

    Before (deprecated):

    {
      "channel": "orderbook_options",
      "query": {
        "pair": "BTC_USDC",
        "maker": "0x1234..."  // No longer supported
      }
    }

    After (required):

    {
      "channel": "orderbook_maker",
      "query": {
        "maker": "0x1234...",  // Now in dedicated channel
        "pair": "BTC_USDC"
      }
    }

    Benefits: Better performance isolation, cleaner API design, optimized for market maker use cases

Updated

  • RFQ response requirements clarified
    • Clarification: RFQ responses must contain either all option orders OR exactly one perpetual order
    • Validation: Cannot mix options and perpetuals in the same RFQ response
    • Documentation: Enhanced examples and constraints in RFQ documentation