Skip to main content
POST
Submit Quote
Submit or update a draft quote for an open quote request. This is channel 2 of the three-channel maker transport — you receive requests over the SSE stream and reply here over REST. Only the latest quote per maker per request is kept — re-POST for the same requestId to update your quote at any time while the request is open. The response returns a server-generated quoteId that is stable across updates for the same maker + request; you use it to confirm if you win.
You do not include your makerId — the relay derives it from your authenticated API key. The quote.maker wallet is required and is written into the on-chain order.

Quote validation

A quote must pass these checks to be eligible for winner selection:

Maker solvency check

The relay verifies on-chain that your quote.maker wallet can actually fund the prospective fill before the quote is accepted, and again at commit time:
  • Selling options (taker buys): your wallet must hold — and have approved to ConvallaxCore — enough USDC for the max-loss collateral of the fill.
  • Buying options (taker writes): your wallet must hold — and have approved to the Settlement contract — enough USDC for the premium.
If the check fails, the submission is rejected with HTTP 422 and an error of maker_insufficient_balance or maker_insufficient_allowance; the detail field states the wallet, amounts, and (for allowance failures) the spender address to approve. Balance/allowance reads are cached for a few seconds, so a top-up may take a moment to be recognised.

Authorizations

X-API-Key
string
header
default:mk_live_alpha_xxx
required

Maker API key (env-issued or self-serve from the dashboard). Maps to a stable makerId.

Body

application/json
requestId
string
required

The requestId from the quote_request event you are quoting.

Example:

"req-789"

quote
object
required

Response

Quote accepted

success
boolean
quoteId
string

Server-generated quote ID, stable across updates.

Example:

"8f3c2b1a-1d2e-4c3b-9a8f-6e5d4c3b2a1f"