RFQ

private/execute_quote

Taker-side call that accepts a specific maker quote and settles the trade atomically. You reference the rfq_id and quote_id and supply the taker's priced legs, direction, max fee, and EIP-712 signature (signer, signature, nonce, expiry), with an optional taker-protection flag. It does not check the RFQ's max_total_cost or min_total_cost. The signature is verified and the taker fill, maker quote, and RFQ are updated together in one atomic step. Requires trade scope for every instrument in the legs.

post/private/execute_quote

Request

  • Base URL: https://api.derive.xyz/v3
  • URL: https://api.derive.xyz/v3/private/execute_quote
  • Auth: none declared

Request body

clientstring
direction'buy' | 'sell' required
enable_taker_protectionboolean

If true, reject the execution with QuoteTakerCostTooHigh when the orderbook fills the same legs at a lower total cost. The check is skipped when the orderbook cannot fill every leg in full. The RFQ's max_total_cost and min_total_cost are not checked here.

labelstring
max_feestring decimal required

Non-negative decimal string of the human value (e.g. "1.5"), up to 12 fractional digits; a string or JSON number is accepted

noncestring required
quote_idstring uuid required

UUID v4 string

referral_codestring
rfq_idstring uuid required

UUID v4 string

signaturestring required
signature_expiry_secinteger required
signerstring required

20-byte Ethereum address as a 0x-prefixed lowercase hex string.

subaccount_idinteger required

Response

Success

cancel_reason'' | 'user_request' | 'insufficient_margin' | 'signed_max_fee_too_low' | 'mmp_trigger' | 'cancel_on_disconnect' | 'session_key_deregistered' | 'subaccount_withdrawn' | 'rfq_no_longer_open' | 'compliance' | 'validation_failed' required
creation_timestampinteger required
direction'buy' | 'sell' required
extra_feestring decimal required

Non-negative decimal string of the human value (e.g. "1.5"), up to 12 fractional digits; a string or JSON number is accepted

feestring decimal required

Non-negative decimal string of the human value (e.g. "1.5"), up to 12 fractional digits; a string or JSON number is accepted

fill_pctstring decimal required

Non-negative decimal string of the human value (e.g. "1.5"), up to 12 fractional digits; a string or JSON number is accepted

is_transferboolean required
labelstring required
last_update_timestampinteger required
legs_hashstring required
liquidity_role'maker' | 'taker' required
max_feestring decimal required

Non-negative decimal string of the human value (e.g. "1.5"), up to 12 fractional digits; a string or JSON number is accepted

mmpboolean required
noncestring required
quote_idstring uuid required

UUID v4 string

rfq_filled_pctstring decimal required

Cumulative fraction of the RFQ filled after this execution, as a decimal string (e.g. "0.5" = 50% filled).

rfq_idstring uuid required

UUID v4 string

signature_expiry_secinteger required
status'open' | 'filled' | 'cancelled' | 'expired' required
subaccount_idinteger required

Changes

No recorded changes to this operation across all 1 revision of this API.