Skip to main content
This guide shows how to discover supported assets, request a quote, approve tokens, and broadcast the settlement transaction.
What you’ll build: A complete trade flow from quote request to settlement.Time required: 10-15 minutesPrerequisites: Basic understanding of EVM wallets and token approvals.
The trading example below uses EVM. Solana RFQ quotes return solana_tx and blockhash instead of tx.

1. Discover Supported Chains and Tokens

Before requesting quotes, identify which chains and tokens Bebop supports. This information changes as new assets are added, so your integration should refresh it regularly.

Get Supported Chains

Retrieve the supported blockchains:
Response (abridged):
Use these network names in subsequent API calls (e.g., /pmm/ethereum/v3/quote).

Get Tokens for a Chain

Once you know which chain you want to trade on, retrieve the list of supported tokens:
Response (abridged):
Key fields:
Caching recommendation: Refresh tokens at least once daily. Token availability can change due to liquidity conditions or new listings.

2. Request a Quote

Quotes return the exact price and settlement parameters for your trade. Regular quotes expire typically within 60-75 seconds (depending on the blockchain), so request them when you’re ready to execute.

Authentication

Unauthenticated requests receive significantly worse prices and are heavily rate limited.
You can try the API in demo mode, however, we encourage you to request an API key to get production-grade pricing and higher limits.

Basic Quote Request

Required parameters:
Direct wallet flow: Use the sending wallet as taker_address. receiver_address receives the bought tokens and defaults to taker_address.
  • Use sell_amounts when you know exactly how much you want to sell (e.g., “Sell 1 WETH”)
  • Use buy_amounts when you know exactly how much you want to receive (e.g., “Buy 5000 USDC”)
For example: 1.5 WETH (18 decimals) = 1.5 × 10¹⁸ = 1500000000000000000
Example - selling 0.01 WETH for USDC on Ethereum:

Understanding the Response

The response below shows the fields that you need for the direct transaction flow.
Key items to note:
Important. Make sure approvalTarget is always picked up from the quote response, not hardcoded. You may receive different targets for different quotes depending on how the trade is handled.As of June 2026, you may see either of the following two contracts in the quote response:
  • router contract: 0xBeb0009ACa35087ce7cCF11637E24dd1Aad3bf2A
  • settlement contract: 0xbbbbbBB520d69a9775E85b458C58c648259FAD5F
See Smart Contracts and Token Approvals guide for more information.

3. Approve the Sell Token

Approve the current quote’s approvalTarget for the sell amount. Confirm the approval transaction before settlement. See Token Approvals for the allowance check and approval code.

4. Sign and Broadcast

The /v3/quote response includes a tx object that is ready to submit.
For Permit2 trades through BebopRouter, follow the Permit2 self-execution guide before broadcasting.Partial fills are also supported. See the Partial Fills guide for details.
Add your nonce and chainId. Then sign and broadcast the transaction before the quote expires.
Key points:

Next Steps

Ready to explore more? Dive into the guides:

Token Approvals

Manage token approvals for trading.

Partial Fills

Combine market maker and AMM liquidity.

Multi-Token Trades

Swap multiple tokens in a single transaction.