Skip to main content
Bebop’s RFQ product pairs off-chain routing with on-chain settlement: makers stream prices, Bebop routes user orders to the best liquidity, and takers settle the match on-chain.

How a trade works

  1. A user submits a trade on a Bebop frontend or API.
  2. Bebop’s algorithm picks the maker(s) whose streamed levels produce the best price for the user. If your price loses, you don’t see the request.
  3. The winning maker(s) receive a taker_quote request; you fill in the amount and sign in a single response.
  4. The taker broadcasts the signed transaction on-chain themselves. Makers have no last look once the quote is issued.
  5. Bebop pushes the settled trade to your Trades WebSocket for reconciliation.

What you build

Three WebSocket connections, on-chain approvals, and the trade history REST API:
  • Pricing WebSocket. Continuously stream bid/ask levels for each supported pair.
  • Quotes WebSocket. Receive taker_quote requests from Bebop; reply with the filled amount and a signature in one message.
  • Trades WebSocket. Receive a notification after each settled trade.
  • Settlement approvals. Allowances granted to the settlement contract for every token you quote. Approval size caps your effective streamed size.
  • Trade history (REST). Query past trades for reconciliation and fee invoicing. See Trade history.
Looking for gasless? Bebop is not onboarding new gasless makers at the moment.

Ready to start building?

Work through these pages in order:
  1. Requirements: what you need in place.
  2. Contracts and tokens: settlement contract, router contract, supported tokens, approvals.
  3. Connection: the three WebSockets and auth.
  4. Pricing, Quotes, Signing, Trades: live trading.
  5. Diagnostics and Testing: verify and test.