Create an RFQ (taker)
Requests quotes for a `base`/`quote` swap from `invitedMakers` (party hints; every invited maker must currently be reachable — a listed but offline maker is a 400). `direction` is from the taker's side: SELL — you sell the base for the quote instrument. `base` / `quote` are catalog symbols (any case). The RFQ expires after `ttlSeconds` unless a trade settles first. You cannot invite yourself.
Requests quotes for a base/quote swap from invitedMakers (party
hints; every invited maker must currently be reachable — a listed but
offline maker is a 400). direction is from the taker's side: SELL —
you sell the base for the quote instrument. base / quote are
catalog symbols (any case). The RFQ expires after ttlSeconds unless
a trade settles first. You cannot invite yourself.
Authorization
ApiKeyAuth In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
curl -X POST "https://example.com/rfq" \ -H "Content-Type: application/json" \ -d '{ "direction": "SELL", "qty": "5.0", "base": "cbtc", "quote": "usdcx", "invitedMakers": [ "acme-mm-4f2a91" ], "ttlSeconds": 5 }'{ "rfqId": "string", "taker": "taker", "direction": "SELL", "qty": "5.0", "base": "cbtc", "quote": "usdcx", "deadline": "2019-08-24T14:15:22Z", "invitedMakers": [ "string" ], "feeBps": 25, "open": true}{ "error": "string", "code": "INSUFFICIENT_FUNDS"}{ "error": "string", "code": "INSUFFICIENT_FUNDS"}Accept a quote (taker) — atomic DvP settlement POST
Stages the trade — checks your funding and locks the quote — and answers **202** with `status: "settling"` plus `actions`: your own allocations to sign, one per instrument your legs touch (empty for a desk-signed house taker). Sign them all in one `POST /tx/execute`. One the desk could not queue at once follows as `sign.requested` (and in `GET /tx/pending`): until the outcome, sign what arrives for the trade. The desk adds its fee-receipt allocation and, once every allocation has landed, settles the trade in one transaction. The outcome arrives as `trade.settled` / `trade.failed` on the stream, or read it from `GET /trades` (settled) and `GET /rfq-history` (failed). A failed trade moves nothing; the quote is revoked and the RFQ stays open for another accept until its deadline. Unsigned allocations fail the trade about 11 minutes after the quote's `validUntil`; an action itself expires after 10, and until then the desk queues a fresh one in its place. An accept also drops any unsigned withdrawal of yours — or the maker's — in the trade's instruments, so it cannot spend the holdings the settlement needs: request it again after the outcome.
Cancel an open RFQ (taker) DELETE
Next Page