RFQ

rfq Channel

Monitor RFQ (Request for Quote) requests and responses. Supports complex option strategies with multiple instruments per request.

Subscribe

ParameterRequiredDescription
accountNoSmart account address - filters RFQ events for this account
typeNo"request" or "response" - filters by RFQ event type
order_idNoSpecific RFQ order ID to monitor (32 hexadecimal characters)

Monitor all RFQ requests from an account:

{
  "channel": "rfq",
  "query": {
    "account": "0x1234567890abcdef1234567890abcdef12345678",
    "type": "request"
  }
}

Monitor all RFQ responses visible to an account:

{
  "channel": "rfq",
  "query": {
    "account": "0x1234567890abcdef1234567890abcdef12345678",
    "type": "response"
  }
}

Monitor all RFQ requests (market maker perspective):

{
  "channel": "rfq",
  "query": {
    "type": "request"
  }
}

Monitor a specific RFQ order:

{
  "channel": "rfq",
  "query": {
    "order_id": "863509b1a865fa3f502a9f6784122dd7"
  }
}

Monitor all RFQ activity:

{
  "channel": "rfq",
  "query": {}
}

The order_id must be exactly 32 hexadecimal characters. Use different query combinations based on your role (taker vs maker).

Event: rfq_request

Emitted when a new RFQ request is created. RFQ requests can contain multiple instruments to create option combinations.

{
  "kind": "event",
  "type": "rfq_request",
  "timestamp_ms": 1751468186897,
  "data": {
    "taker": "0x1234567890abcdef1234567890abcdef12345678",
    "rfq_orders": [
      {
        "instrument_name": "BTC_USDC-31OCT25-130000-C",
        "contracts": 25,
        "direction": "buy"
      },
      {
        "instrument_name": "BTC_USDC-31OCT25-108000-C",
        "contracts": 30,
        "direction": "sell"
      }
    ],
    "order_id": "863509b1a865fa3f502a9f6784122dd7"
  },
  "subscription": {
    "channel": "rfq",
    "query": {}
  }
}
FieldTypeDescription
takerstringAddress of the account requesting quotes
rfq_ordersarrayArray of market orders for multiple instruments
order_idstring32-character hex identifier for the RFQ request

Multiple instruments enable complex option strategies (spreads, straddles, etc.).

Event: rfq_post_response

Emitted when a market maker posts a new response to an RFQ request with pricing. Each fill represents a market order paired with limit orders that would satisfy it.

{
  "kind": "event",
  "type": "rfq_post_response",
  "timestamp_ms": 1751468277275,
  "data": {
    "fills": [
      [
        {
          "direction": "buy",
          "instrument_name": "BTC_USDC-31OCT25-130000-C",
          "contracts": 25
        },
        [
          {
            "direction": "buy",
            "instrument_name": "BTC_USDC-31OCT25-130000-C",
            "type": "good_til_cancelled",
            "contracts": 25,
            "price": 132500,
            "post_only": true,
            "mmp": false,
            "liquidation": false,
            "taker": "0x1234567890AbcdEF1234567890aBcdef12345678",
            "maker": "0x0987654321098765432109876543210987654321",
            "signature": "0x...",
            "signature_deadline": 1735689600,
            "order_id": "863509b1a865fa3f502a9f6784122dd7",
            "order_state": "open",
            "filled_amount": 0,
            "creation_timestamp": 1751468277,
            "chain_id": 421614,
            "to_be_filled": 25
          }
        ]
      ],
      [
        {
          "instrument_name": "BTC_USDC-31OCT25-108000-C",
          "contracts": 30,
          "direction": "sell"
        },
        [
          {
            "instrument_name": "BTC_USDC-31OCT25-108000-C",
            "type": "good_til_cancelled",
            "contracts": 30,
            "direction": "sell",
            "price": 150000,
            "post_only": true,
            "mmp": false,
            "liquidation": false,
            "taker": "0x1234567890AbcdEF1234567890aBcdef12345678",
            "maker": "0x0987654321098765432109876543210987654321",
            "signature": "0x...",
            "signature_deadline": 1735689600,
            "order_id": "863509b1a865fa3f502a9f6784122dd7",
            "order_state": "open",
            "filled_amount": 0,
            "creation_timestamp": 1751468277,
            "chain_id": 421614,
            "to_be_filled": 30
          }
        ]
      ]
    ],
    "order_id": "863509b1a865fa3f502a9f6784122dd7",
    "taker": "0x1234567890abcdef1234567890abcdef12345678",
    "maker": "0x0987654321098765432109876543210987654321",
    "response_id": "dc937919bb5dac8f50a82ecb16a01719"
  },
  "subscription": {
    "channel": "rfq",
    "query": {}
  }
}
FieldTypeDescription
fillsarrayArray of [MarketOrder, LimitOrder[]] pairs for each instrument
order_idstringReferences the original RFQ request ID
response_idstringUnique identifier for this specific response
takerstringTaker account address
makerstringMaker account address

Each limit order includes: signature, signature_deadline, order_state, filled_amount, creation_timestamp, chain_id, and to_be_filled.

Multi-instrument responses enable atomic execution of complex option strategies.

See EIP-712 Signatures Guide for signature details.

Event: rfq_cancel_response

Emitted when a market maker cancels a previously posted RFQ response.

{
  "kind": "event",
  "type": "rfq_cancel_response",
  "timestamp_ms": 1751468300000,
  "data": {
    "fills": [],
    "order_id": "863509b1a865fa3f502a9f6784122dd7",
    "taker": "0x1234567890AbcdEF1234567890aBcdef12345678",
    "maker": "0x0987654321098765432109876543210987654321",
    "response_id": "dc937919bb5dac8f50a82ecb16a01719"
  },
  "subscription": {
    "channel": "rfq",
    "query": {}
  }
}
FieldTypeDescription
fillsarrayEmpty array for cancelled responses
order_idstringReferences the original RFQ request ID
response_idstringUnique identifier of the cancelled response

Cancellation removes the response from the orderbook, preventing execution. Only the maker who posted the response can cancel it.