Atomic settlement
Accept → allocations → one SettleBatch per registry — all-or-nothing
The chain
When the taker accepts your quote:
- Accept — nothing of yours moves. Your committed allocations already are your side of the trade; the accept locks the quote in the desk's book and opens the settlement window. You are not involved.
- Allocations — the taker signs its own side, returned by its accept, the
same way you signed your quote: committed token-standard v2 allocations
naming the same settlement; the desk adds the operator's fee receipt.
trade.step {step: "allocated"}fires once every allocation of the trade is on the ledger. - Settle — the operator, as the settlement executor, submits one Canton
transaction carrying one
SettlementFactory_SettleBatchper instrument registry: both legs of the swap and the desk fee move together. Either the whole trade happens, or none of it does. There is no partial fill and no leg risk.
The fee
The desk fee is paid by the maker to the operator, in the pair's quote instrument:
fee = qty × price × feeBps / 10000 (floored to 10 decimal places)feeBps is stamped on the RFQ at creation — you see it in rfq.created
before you quote, so price it in. Your quote-asset allocation carries it: on a
SELL RFQ (you buy the base) it is locked together with the notional you pay;
on a BUY RFQ (you sell the base) it sits in the allocation that receives the
notional, and must still be covered by quote-asset holdings you already have —
the notional arrives only with the settle itself.
Proof
trade.settled delivers the final TradeDto whose ledger object is your
on-ledger proof:
updateId— the Canton update id of the atomic settle transaction;receiptCids— the contract ids of the allocations the batch consumed (yours, the taker's and the operator's).
Both are also available later via GET /maker/trades.
When settlement fails
trade.failed {tradeId, rfqId, reason} ends the trade: the taker could not
fund its leg, the settlement window expired (the taker never signed its side),
or your allocation is gone. Nothing has moved — atomicity cuts both ways. Your
quote is revoked and the desk cancels the trade's allocations, so your
holdings are free again; the RFQ stays open until its deadline, and the taker
may accept another quote. Your own side was locked at quoting time, so short of your allocation
disappearing, a failure is not yours to prevent.