Skip to main content
MakerStream request messages contain everything a maker needs to price, size, sign, and return a quote.

Request fields

rfq_id is taker-scoped. Use (request_address, rfq_id) as the settlement correlation key; do not invent it locally and do not use client_id in its place.

How to interpret direction

The direction is always from the taker’s perspective. For a taker long, lower maker quote prices are more competitive. For a taker short, higher maker quote prices are more competitive.

Pricing inputs

A production maker usually prices from:
  • Current mark price and external reference venues
  • Market tick size and quantity step
  • Request quantity and margin
  • Taker worst_price
  • Inventory skew
  • Funding carry
  • Hedge cost
  • Available USDC margin
  • Quote expiry budget
worst_price is already human-scale, for example "14.85". Do not treat it as a 1e18-scaled integer.

Partial fills

Your quote does not have to match the taker’s full requested margin or quantity. You may quote a smaller maker_quantity / maker_margin if you only want to fill part of the request. If you set min_fill_quantity, the contract will not fill that quote below your minimum. Sign absent min_fill_quantity as "0" through the helper path; never use an empty string in the signed digest.

Next step

After receiving a request:
  1. Decide whether to quote.
  2. Canonicalize all decimal strings.
  3. Sign the quote with EIP-712 v2.
  4. Send it with sign_mode: "v2" and evm_chain_id.
See Building & signing quotes and Sending quotes.
Last modified on June 2, 2026