Api create rfq request
ApiCreateRfqRequest
Creates a new RFQ (Request For Quote): a taker solicits private quotes for a single STABLE_PERP instrument by specifying a size, and optionally a direction (rfq.side; omit for a two-way request). This request is unsigned — creating an RFQ commits the taker to nothing.
End-to-end flow:
1. The taker submits an RFQ here. (In the GRVT UI, entering a size on the trade page is the RFQ.)
2. GRVT broadcasts the RFQ to makers on the v1.rfq stream; makers respond with private quotes.
3. Those private quotes stream back to the taker on the v1.quote stream, alongside the public order book (firm resting liquidity + public quotes) which is already visible.
4. The taker accepts by signing an order via create_order with metadata.rfq_id set (single leg; IOC or FOK), which executes across the private pool merged with the public book — or walks away and lets the RFQ expire.
The created RFQ is returned in the response. A sub-account may hold at most one open RFQ per instrument. The RFQ lives until rfq.expiry, after which GRVT expires it and auto-cancels the makers' private quotes bound to it.
Name
Lite |
Type |
Required
Default |
Description |
rfq
r |
Rfq |
True |
The RFQ to create |
Rfq
A Request for Quote (RFQ) lets a taker solicit private quotes on a single instrument from makers.
- Single instrument
- Each RFQ targets one instrument (kind = STABLE_PERP) for a single requested size.
- The taker may disclose a direction via
rfq.side, or omit it to request a two-way (buy and sell) quote.
- Maker solicitation
- On submission, GRVT broadcasts the RFQ to makers over the
v1.rfq feed (see RfqFeed). - Makers respond with private quotes, which the taker receives as a private quote book over the
v1.quote feed (see RfqQuoteFeed).
- Anonymity
- Anonymity is automatic and always enforced — the taker and makers only ever see each other's derived anonymous account ids.
- Real taker and maker identities are never exposed to the counterparty.
- Expiry
- The RFQ lives until
rfq.expiry, after which GRVT expires it and auto-cancels the makers' private quotes bound to it.
Name
Lite |
Type |
Required
Default |
Description |
rfq_id
ri |
string |
True |
[Filled by GRVT Backend] A unique 128-bit identifier for the RFQ, deterministically generated within the GRVT backend |
sub_account_id
sa |
string |
True |
The subaccount initiating the RFQ |
expiry
e |
string |
True |
RFQ TTL. The timestamp after which Gravity expires the RFQ, expressed in unix nanoseconds. Default 60s, cap 300s (per-instrument config) |
instrument
i |
string |
True |
The instrument to trade. Must be kind = STABLE_PERP |
size
s |
string |
True |
Requested size (positive), expressed in base asset decimal units |
side
s1 |
RfqSide |
False
None |
Optional — omitted = two-way request. The GRVT UI always fills it; API takers may withhold direction and accept two-way quotes |
RfqSide
| Value |
Description |
UNSPECIFIED = 0 |
omitted = two-way request |
BUY = 1 |
the RFQ side is a buy |
SELL = 2 |
the RFQ side is a sell |