swap_quote
Start a private sealed-bid swap auction to get the best OTC quote. Returns a swap handle and best bid with zero slippage.
Instructions
One-call OTC swap intake for agents — opens a sealed-bid Ghost Auction under the hood and waits briefly for the first private market-maker bids, then hands back a swap_handle + the best bid so far. Async by design: there is NO public synchronous price (that is the privacy guarantee). Zero slippage: the bid you execute is the fill.
USE WHEN: an agent/user wants to "just swap X for Y" and have the facade manage quote collection + best-bid selection + a price guard. Privacy-sensitive or large flow. DO NOT USE WHEN: the caller wants explicit market-maker-aware RFQ control and will pick/accept quotes itself — use create_rfq. Sub-second DEX fills — use a DEX aggregator.
PARAM NOTES: limit_price is your sealed reservation — for SELL it is a FLOOR (min you will accept), for BUY a CEILING (max you will pay), per unit of base in quote-token terms. It is NEVER sent to makers. private defaults true (Ghost Auction ON — hides your identity from bidders); set false for an open auction. After this returns, call swap_execute (with the same limit_price, or best_bid.quote_id) to take it, swap_status to let competition build, or swap_cancel to abort. Real funds: restate the resolved deal to the user before executing.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| side | Yes | SELL = dispose of baseToken; BUY = acquire baseToken. | |
| baseToken | Yes | Base asset symbol (see list_supported_pairs). | |
| baseChain | No | Chain the base token settles on. | |
| quoteToken | Yes | Quote asset symbol. | |
| quoteChain | No | Chain the quote token settles on. | |
| amount | Yes | Base-token amount as a raw decimal string ("0.1", "2"). Do NOT convert to wei/satoshis. | |
| limit_price | No | Sealed reservation. SELL=floor, BUY=ceiling, per unit of base in quote terms. Never sent to makers. | |
| private | No | Ghost Auction (hide requester identity). Default true. Set false for an open auction. | |
| expiresIn | No | RFQ lifetime seconds. Default 300. Hard cap 86400. | |
| max_wait_seconds | No | How long swap_quote waits for first bids. Default 20, capped 25. | |
| client_request_id | No | Idempotency key. Same id within this MCP session returns the first result instead of opening a second RFQ. Best-effort: not durable across restarts. |