sdk.otcOrders namespace: a maker signs the terms off-chain naming a specific taker, and only that taker can fill the order on-chain.
Mechanically it’s a signed on-chain order whose defining field is the taker: you name the counterparty’s address, and only that address can fill the order: a private, fillable-by-one OTC trade (P2P).
This is for bilateral, counterparty-specific trades. For open, target-price orders that any solver can fill, use Limit orders (Delta) instead; those are gasless and MEV-protected. For the conceptual difference, see Product stack → OTC.
When to use this
- The counterparty matters as much as the price: treasury rebalancing, partner deals, market-maker inventory moves.
- You’ve agreed terms off-book and want a verifiable on-chain settlement restricted to the agreed counterparty.
- You don’t want the trade exposed as a public order before it settles.
How it works
OTC has two sides. The maker builds and signs the order (gasless, off-chain). The taker (the named counterparty) submits the fill transaction on-chain through the AugustusRFQ contract.Maker approves the maker asset
The maker approves AugustusRFQ to pull the asset they’re selling:
sdk.otcOrders.approveMakerTokenForOTCOrder(makerAmount, makerAsset).Maker signs and posts the order
The maker builds an order naming the intended
taker, signs the EIP-712 typed data, and posts it: sdk.otcOrders.submitOTCOrder({ ...terms, taker }). Posting stays off-chain, so the maker pays nothing.Taker approves the taker asset
The taker approves AugustusRFQ for the asset they’re paying with:
sdk.otcOrders.approveTakerTokenForOTCOrder(takerAmount, takerAsset).Maker: build, sign, and post
sdk.otcOrders.buildOTCOrder → sdk.otcOrders.signOTCOrder → sdk.otcOrders.postOTCOrder.
Taker: fill the order
The taker receives the maker’s signed order, approves the asset they’re paying with, and fills on-chain:expiry against the current block before submitting.
Query and cancel
cancelDeltaOrders flow for Delta orders.
sdk.otcOrders.getOTCOrdersContract() returns the AugustusRFQ address for the active chain; see Chains & contracts for all deployments.
Related pages
- Limit orders: open, gasless target-price orders (Delta).
- Product stack → OTC, the conceptual model.
- API reference → AugustusRFQ — the underlying order surface.
- Chains & contracts for AugustusRFQ deployment addresses.