Skip to main content

Pricing Modes

The stream supports two pricing modes, controlled by the gasless parameter on the WebSocket URL:
ModeParameterSettlementLast lookPricing
Self-executiongasless=falseYou submit the transaction on-chainNo - quotes are firm once signedSlightly wider spreads
Gaslessgasless=trueBebop submits on-chain for youYes - maker can reject before settlementTighter spreads
Self-execution is the default and recommended mode for solvers and aggregators. Since there’s no last look, the price you see is firm - but spreads are slightly wider to compensate. Gasless is designed for wallets and super-apps where gasless UX matters. Market makers retain last look, meaning they can reject a quote before settlement. In return, they offer tighter pricing.
Choosing the right mode: If you’re a solver or aggregator executing trades yourself, use self-execution. If you’re building a wallet where users shouldn’t pay gas, use gasless. Make sure your RFQ API quotes match the stream you’re subscribed to.

Quote Expiry

The expiry_type parameter controls how long quotes remain valid. Short expiry is only available for self-execution - since gasless quotes are submitted by the maker, the taker doesn’t control submission timing.
Expiry typeAvailabilityWindowBest for
standardSelf-execution and gasless~60-75s (varies by chain)Most integrators - easier to manage, more time to sign and submit
shortSelf-execution only~5s on Ethereum, ~3s on other chainsLatency-sensitive solvers - must submit by end of block, but pricing is tighter
Short expiry quotes offer better prices because the market maker’s risk window is smaller. However, they require fast execution infrastructure - you need to sign and broadcast within a single block.
If you request short expiry quotes from the RFQ API, subscribe to the short expiry pricing stream to get matching indicative prices. Mixing expiry types between the stream and firm quotes will give you inaccurate pre-trade estimates.