Skip to main content
Bebop pushes completed trades to makers connected to the Trades WebSocket.

Identifiers

Every trade has three identifiers that link together:
  • quote_id: the key Bebop uses across quote requests, responses, and trade notifications. Format: <order_type>-<random>.
  • event_id: emitted on-chain in the BebopOrder event log. Derived from quote_id; the trailing digits may differ (typically 00 or 01).
  • tx_hash: the on-chain transaction that settled the trade.
An event_id of 0 indicates a trade settled by an external entity using the permissionless settlement contract, outside of Bebop’s routing. These trades don’t appear in your quote stream because Bebop wasn’t involved in the match. To reconcile trades to your internal quote records, match on quote_id via the Trades WebSocket or Trade history.

Partial fills

Partial fill is a taker-side feature, not a maker option: you always quote the full requested amount, and the taker may choose to fill less than requested at the same price. Both the Trades WebSocket and the Trade history endpoint show the original taker_amount / maker_amount and the executed filled_taker_amount / filled_maker_amount.

RFQA amounts

For RFQA trades, the Trades WebSocket and Trade history also report the on-chain maker amounts after oracle slippage protection:
  • onchain_maker_amount: the maker token that actually left your wallet, net of any refund.
  • refunded_maker_amount: your share of the recovered slippage.
These satisfy onchain_maker_amount + refunded_maker_amount == filled_maker_amount. See BebopRouter protection.

Trade status

StatusDescription
TX_SENT_TO_CHAINInitial status after the transaction has been sent on-chain.
SETTLEDTrade has been observed on-chain but has not reached what would be considered finality.
CONFIRMEDTrade has reached the number of confirmations considered final.
FAILED_ONCHAINTrade was submitted but the transaction reverted on-chain.