monaco.api.rfq
Source: protos/api/rfq.proto
Use RfqService for RFQ (block trades): a taker requests quotes for a size, makers quote privately, the taker accepts one side of the aggregated view, and the selected makers get a 250 ms last look before the trade settles.
Notes
- Authentication and access: every RPC requires authentication. RFQ is available only to accounts it is enabled for; other callers are refused with
PERMISSION_DENIED(RFQ_DISABLEDon REST),GetRfqCapabilitiesincluded. For an account it is enabled for,GetRfqCapabilitiesreturns the markets it is offered on with their minimum and maximum quantity, the timings, and your creation quota. - Units: prices are quote units per base unit, and capacities and quantities are base units, all as exact decimal strings.
- Idempotency: every write takes an
idempotency_key; a retry with the same key and body returns the first result. - Taker:
CreateRfqopens an RFQ for up toquantity. Withoutsideit is two-way, and makers never see your direction.GetRfqreturns your currentview(to wait for quotes, follow theRfqViewpushes instead of polling it): per side the all-in VWAP (your Monaco and builder fees included), the available quantity, the fee breakdown, and optionally the same size priced on the public order book. Once the RFQ ends it also returns theoutcome.AcceptRfqnames a side and theview_versionyou saw: binding, and refused if the view has moved since.CancelRfqworks only before you accept.ListRfqslists your RFQs as the taker, newest first, in every state, paged bypage_size(1–100, default 50) andpage_token. - Maker:
UpsertRfqQuoteplaces or replaces your quote (a bid, an ask or both), namingexpected_version: 0 for your first quote, thenown_latest_versionfromGetRfq.validity_msis 15000–60000 (default 60000), capped at the request deadline. A quote reserves funds as a resting limit order does.WithdrawRfqQuotewithdraws it. Once selected,GetRfqreturns yourown_selection.RespondRfqLastLookrejects, or improves your frozen terms (a strictly better price or a higher capacity, never a lower one). It counts if it arrives by the 250 ms deadline; one arriving later is refused (RFQ_DEADLINE_PASSED; see last look). There is no accept: silence executes. After settlement,own_fillslists your own fills with the fees as charged. - Pushes: new RFQs to quote and last-look prompts arrive only on the authenticated
rfqWebSocket channel (WebSocket reference); gRPC has no streaming RPC for them. A maker’s quotes depend on that connection: see Disconnects. - Public prints: RFQ fills print anonymously on the
rfq_tradesWebSocket channel and appear in the public trade reads taggedexecution_source = RFQ, never on the order-booktradeschannel.

