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 theBebopOrderevent log. Derived fromquote_id; the trailing digits may differ (typically00or01).tx_hash: the on-chain transaction that settled the trade.
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 originaltaker_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.
onchain_maker_amount + refunded_maker_amount == filled_maker_amount. See BebopRouter protection.
Trade status
| Status | Description |
|---|---|
TX_SENT_TO_CHAIN | Initial status after the transaction has been sent on-chain. |
SETTLED | Trade has been observed on-chain but has not reached what would be considered finality. |
CONFIRMED | Trade has reached the number of confirmations considered final. |
FAILED_ONCHAIN | Trade was submitted but the transaction reverted on-chain. |