Select exact terms, then sign once.
A swap starts with private quote discovery, continues with two distinct signatures, and ends with atomic public settlement.
1. Request and verify a quote
The RFQ request contains the intended pair, input amount, trader, and relevant execution context. A solver returns an exact quote signed by the solver. The signed quote identifies the economic terms, including the exact output and expiry, so a relay cannot silently substitute a worse response.
2. Authorize the order
The trader signs an EIP-712 order for a specific trader, solver, input token, output token, input amount, minimum output, nonce, and deadline. The nonce prevents replay, the deadline limits stale authorization, and minimum output makes execution revert if the delivered amount is insufficient.
RfqOrder(address trader,address solver,address tokenIn,address tokenOut,uint256 amountIn,uint256 minAmountOut,uint256 nonce,uint256 deadline)3. Settle publicly
The designated solver submits the trader order and output inventory. Settlement checks authorization and economic constraints, consumes the nonce, moves both sides atomically, and records the final fill onchain. If any required check fails, the fill reverts.
Only pre-trade RFQ intent is private/offchain; shield deposits, contract balances, final fills, and unshield withdrawals are public onchain.