RFQ
rfq Channel
Monitor RFQ (Request for Quote) requests and responses. Supports complex option strategies with multiple instruments per request.
Subscribe
| Parameter | Required | Description |
|---|---|---|
account | No | Smart account address - filters RFQ events for this account |
type | No | "request" or "response" - filters by RFQ event type |
order_id | No | Specific 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_idmust 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": {}
}
}| Field | Type | Description |
|---|---|---|
taker | string | Address of the account requesting quotes |
rfq_orders | array | Array of market orders for multiple instruments |
order_id | string | 32-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": {}
}
}| Field | Type | Description |
|---|---|---|
fills | array | Array of [MarketOrder, LimitOrder[]] pairs for each instrument |
order_id | string | References the original RFQ request ID |
response_id | string | Unique identifier for this specific response |
taker | string | Taker account address |
maker | string | Maker 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": {}
}
}| Field | Type | Description |
|---|---|---|
fills | array | Empty array for cancelled responses |
order_id | string | References the original RFQ request ID |
response_id | string | Unique identifier of the cancelled response |
Cancellation removes the response from the orderbook, preventing execution. Only the maker who posted the response can cancel it.
Updated about 10 hours ago
