---
title: "Commit to Quote"
method: POST
path: "/quote-requests/{id}/commit"
tags: ["Trading"]
---

# Commit to Quote

`POST /quote-requests/{id}/commit`

Commit to the best valid quote. The relay selects the winner, builds the EIP-712 `Order`, asks the winning maker to sign it (over the post-trade WebSocket, confirmed via REST), and returns the signed order plus the single USDC approval the taker must make before calling `fill()`. Blocks until a maker confirms; falls back to the next-best maker on a missed deadline. Returns a simulated execution when the on-chain environment is not configured.

## Path parameters

- `id` string, required

## Request body

- CommitInput
  - `wallet` string, required — Taker wallet (checksummed). Set as `taker` in the order — only this wallet can call `fill()`.

## Response `200`

Order signed by the winning maker (or simulated execution)

- CommitResponse
  - `success` true
  - `message` string
  - `mode` 'onchain' | 'simulated'
  - `quote` Quote — A market maker quote as exposed to takers.
    - `maker_id` string — Identifier of the market maker.
    - `quote_id` string — Server-generated quote ID.
    - `maker` string — Maker wallet address (becomes `Order.maker`).
    - `side` 'buy' | 'sell'
    - `price` number — Price per option in (0, 1).
    - `size` number
    - `expires_in_ms` number
  - `execution` Execution
    - `execution_id` string
    - `request_id` string
    - `quote_id` string, nullable
    - `maker_id` string, nullable
    - `executed_at` string, date-time
  - `onchain` OnchainBlock — Everything needed for on-chain fill(). Present only when mode is "onchain".
    - `settlementAddress` string
    - `coreAddress` string
    - `order` Order — EIP-712 Order struct.
      - `maker` string
      - `seriesId` string — Option series ID (= ERC-1155 token ID), decimal string.
      - `optionAmount` string — Option tokens, raw units (6 decimals), decimal string.
      - `premiumAmount` string — USDC premium, raw units (6 decimals), decimal string.
      - `makerSelling` boolean — True = maker sells options to taker; false = maker buys.
      - `taker` string
      - `validUntil` integer — Order expiry (Unix seconds).
      - `nonce` integer — Single-use replay-protection nonce.
    - `makerSignature` string — EIP-712 signature by the maker (recovers to order.maker).
    - `domain` Eip712Domain
      - `name` string
      - `version` string
      - `chainId` integer
      - `verifyingContract` string
    - `chainId` integer
    - `takerApproval` TakerApproval — The single USDC approval the taker must make before calling fill().
      - `spender` string — Settlement address (premium, long) or Core address (collateral, short).
      - `amount` string — USDC amount to approve, raw units (6 decimals).
      - `reason` 'premium' | 'collateral'

## Other responses

- `400` — Error
- `404` — Error
- `409` — Error
- `502` — Error
- `503` — No market maker confirmed in time — the request stays open; retry.

---

[API](https://skmtc.net/convallax/apis/convallax-rfq-api.md) · [All operations](https://skmtc.net/convallax/apis/convallax-rfq-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/convallax/convallax-rfq-api/versions/c8cb11b778c1/schema)
