Skip to content

NBBO & Solver/Intent Architecture via RFQ

TL;DR

  • NBBO (National Best Bid and Offer) is the best available buy and sell price across all US stock exchanges at any given moment. By law (Reg NMS Rule 611), brokers must route customer orders to the venue showing the best price. NBBO is constructed from a consolidated feed aggregating quotes from NYSE, NASDAQ, IEX, CBOE, and 12+ other exchanges
  • Intent-based trading flips the traditional model: instead of the user constructing and routing an order themselves, they express what they want ("buy 10 shares of AAPL") and a solver figures out the best way to execute it. The user delegates execution to a specialist
  • Solvers are entities that compete to fulfill user intents at the best price. In DeFi, solvers route across DEXes and liquidity pools. In Backpack's model, the solver is a TradFi broker with direct market access to US equity exchanges — it can tap into the real NBBO across all venues
  • RFQ (Request for Quote) is the mechanism that connects intents to solvers. The user's intent becomes an RFQ, market makers and brokers compete to quote the best price, and the best quote wins. Backpack's RFQ system already handles crypto Convert and collateral conversion — extending it to stocks means routing RFQs to TradFi brokers instead of (or in addition to) crypto market makers
  • Why not build a separate stock order book? Because US equities trade ~$500B/day across regulated exchanges with professional market makers competing for every basis point. Building a thin order book for AAPL on a crypto exchange would produce wide spreads, thin depth, and worse prices than what a broker can get by routing to the real market. The correct architecture is to tap into existing liquidity, not replicate it
  • The bridge architecture: User intent → RFQ → solver (TradFi broker) → broker routes to US equity exchange at NBBO (or better via price improvement) → fill flows back → settlement on Backpack. The user never interacts with the TradFi plumbing — they see a simple "Buy AAPL" button
  • This is Backpack's structural advantage: by going down the broker-dealer path, Backpack can offer real stock execution at NBBO prices, then treat those real shares as collateral for crypto positions. No other crypto exchange can do this because they lack broker-dealer registration. This creates a unified system where stocks, crypto, perps, and predictions cross-margin under one portfolio

Prerequisites: This doc assumes familiarity with RFQ mechanics (how Backpack's Request for Quote system works) and CLOB vs AMM (how different exchange architectures compare). See the Glossary for term definitions.


Table of Contents

  1. What Is NBBO?
  2. Intents and Solvers: A New Execution Model
  3. From DeFi Intents to TradFi Solvers
  4. How NBBO Is Constructed
  5. Backpack's RFQ System: The Foundation
  6. Extending RFQ to TradFi Brokers
  7. Why Not Build a Stock Order Book?
  8. Price Improvement and Dark Pools
  9. Latency Considerations
  10. The Unified System: Stocks as Collateral

1. What Is NBBO?

The Basic Idea

In the US, stocks don't trade on a single exchange. AAPL trades simultaneously on NYSE, NASDAQ, IEX, CBOE BZX, CBOE EDGX, NYSE Arca, and a dozen other exchanges and ATSes (Alternative Trading Systems). Each venue has its own order book with its own best bid and best ask.

The National Best Bid and Offer (NBBO) is the highest bid and lowest ask across all of these venues at any given moment. It represents the best price available anywhere in the US equity market.

NBBO Construction — AAPL at 10:42:13.482 AM ET:

  NYSE:       Bid: $227.42 (300 shares)   Ask: $227.45 (200 shares)
  NASDAQ:     Bid: $227.43 (500 shares)   Ask: $227.46 (100 shares)
  IEX:        Bid: $227.41 (200 shares)   Ask: $227.44 (400 shares)
  CBOE BZX:   Bid: $227.42 (150 shares)   Ask: $227.45 (300 shares)
  NYSE Arca:  Bid: $227.43 (400 shares)   Ask: $227.47 (200 shares)
  CBOE EDGX:  Bid: $227.40 (100 shares)   Ask: $227.44 (250 shares)
                    │                             │
                    ▼                             ▼
  NBBO:       Best Bid: $227.43            Best Ask: $227.44
              (from NASDAQ + NYSE Arca)    (from IEX + CBOE EDGX)

  NBBO Spread: $0.01 (less than half a basis point on a $227 stock)

Why NBBO Matters

Regulation NMS (National Market System), adopted by the SEC in 2005, includes Rule 611 — the Order Protection Rule. This rule makes it illegal for an exchange to execute a trade at a price worse than the NBBO. If NYSE has a bid of $227.42 and NASDAQ has a bid of $227.43, NYSE cannot fill a sell order at $227.42 while a better price exists on NASDAQ. The exchange must either route the order to NASDAQ or improve its own price.

This has two critical implications:

  1. Best execution is not optional — brokers have a legal duty to seek the best available price for their customers. This isn't a nice-to-have; it's a federal regulation with enforcement and penalties.

  2. The NBBO aggregates all liquidity — instead of each exchange being an isolated pool, Reg NMS creates a single national market where all venues compete. The result: US equity spreads are razor-thin (often one penny for liquid stocks) and execution quality is exceptionally high.

Before Reg NMS (pre-2005):         After Reg NMS:

  NYSE         NASDAQ               NYSE         NASDAQ
  ┌──────┐    ┌──────┐              ┌──────┐    ┌──────┐
  │ Bid  │    │ Bid  │              │      │    │      │
  │$50.10│    │$50.15│              │      │◄───┤      │  Orders routed
  │      │    │      │              │      │    │      │  to best price
  │ Ask  │    │ Ask  │              │      ├───►│      │
  │$50.25│    │$50.20│              │      │    │      │
  └──────┘    └──────┘              └──────┘    └──────┘
                                         │          │
  Isolated pools.                        ▼          ▼
  Your broker could                  ┌──────────────────┐
  fill you at $50.25                 │   NBBO: National  │
  even though $50.20                 │   Best Bid/Offer  │
  existed elsewhere.                 │   Bid: $50.15     │
                                     │   Ask: $50.20     │
                                     └──────────────────┘
                                     All venues connected.
                                     You get the best price.

The SIP: How NBBO Is Calculated

The Securities Information Processor (SIP) is the system that calculates the NBBO. There are two SIPs:

  • CTA/CQS — processes quotes and trades for NYSE-listed securities
  • UTP — processes quotes and trades for NASDAQ-listed securities

Every exchange continuously sends its best bid and ask to the SIP. The SIP aggregates all quotes, calculates the national best bid and offer, and distributes it to all participants. This happens continuously throughout the trading day.

SIP Data Flow:

  NYSE  ──── quotes ────►┐
  NASDAQ ─── quotes ────►│
  IEX ────── quotes ────►├──► SIP ──► NBBO ──► All participants
  CBOE ───── quotes ────►│           (continuously
  Arca ───── quotes ────►│            updated)
  EDGX ───── quotes ────►┘

  Latency: SIP adds ~500 microseconds of processing time
  Update frequency: Continuous (every quote change)

There's a catch: the SIP is slow relative to direct feeds. Major firms pay for direct exchange feeds — raw data straight from each exchange — and calculate their own NBBO faster than the SIP can. This creates a two-tier system:

Feed TypeLatencyCostWho Uses It
SIP (consolidated)~500μsIncluded in exchange feesRetail brokers, most firms
Direct exchange feeds~10-50μs$10,000–$100,000+/month per exchangeHFT firms, large market makers

For Backpack's model, this distinction doesn't matter much — the TradFi broker handles feed subscriptions and routing. The broker's infrastructure already solves the NBBO problem.


2. Intents and Solvers: A New Execution Model

The Traditional Model: Orders

In the traditional model, the user does all the work:

Traditional Order-Based Trading:

  User thinks: "I want to buy 10 AAPL"


  User must decide:
  ├── Which venue? (NYSE? NASDAQ? Dark pool?)
  ├── What order type? (Market? Limit? IOC?)
  ├── What price? (At NBBO? Below? Above?)
  ├── How to split? (All at once? Slice over time?)
  └── How to route? (Smart order routing? Direct access?)


  User constructs a specific order:
  "Buy 10 AAPL, Limit $227.44, route to NYSE"


  Exchange matches against resting orders

The user specifies exactly how to execute. They choose the venue, the order type, the price, and the routing. This gives maximum control but requires expertise — most retail users don't know (or care) which exchange to route to.

The Intent Model: Express What, Not How

The intent model inverts this. The user expresses what they want, and delegates the how to a solver:

Intent-Based Trading:

  User thinks: "I want to buy 10 AAPL"


  User expresses intent:
  "I want 10 shares of AAPL at or better
   than the current best price"


  Intent goes to solver(s)

       ├──► Solver A (TradFi broker):
       │    Routes to NYSE, gets fill at $227.44

       ├──► Solver B (another broker):
       │    Routes to dark pool, gets $227.435
       │    (sub-penny price improvement)

       └──► Solver C (market maker):
            Fills from own inventory at $227.44


  Best execution wins — Solver B at $227.435

The key properties of an intent:

PropertyDescription
DeclarativeStates the desired outcome, not the execution method
DelegatedThe user trusts a solver to find the best path
CompetitiveMultiple solvers compete to fulfill the intent at the best price
VerifiableThe result can be checked against NBBO or other benchmarks

What Is a Solver?

A solver is any entity that can take a user's intent and produce a fill. Solvers compete on one dimension: execution quality (price, and secondarily speed and reliability).

In different contexts, solvers take different forms:

Solver Types Across Markets:

  ┌─────────────────────────────────────────────────────────────┐
  │                        SOLVERS                              │
  ├──────────────────┬──────────────────┬───────────────────────┤
  │   DeFi Solver    │  Crypto MM/OTC   │   TradFi Broker       │
  ├──────────────────┼──────────────────┼───────────────────────┤
  │  Routes across   │  Quotes from     │  Routes to stock      │
  │  DEXes, bridges, │  own inventory   │  exchanges at NBBO,   │
  │  aggregators     │  or hedges on    │  dark pools for       │
  │                  │  other venues    │  price improvement    │
  ├──────────────────┼──────────────────┼───────────────────────┤
  │  1inch Fusion    │  Wintermute      │  Citadel Securities   │
  │  CoW Protocol    │  Jump            │  Virtu Financial      │
  │  UniswapX        │  GSR             │  Interactive Brokers  │
  │  Across          │                  │  Schwab               │
  └──────────────────┴──────────────────┴───────────────────────┘

The insight is that a solver doesn't need to hold the liquidity — it needs to access it. A TradFi broker acting as a solver doesn't maintain its own stock order book. It has connectivity to every US equity exchange and routes orders to wherever the best price is. The broker solves the user's intent by navigating the existing market infrastructure.


3. From DeFi Intents to TradFi Solvers

DeFi Intents: Where the Model Originated

The intent/solver model gained traction in DeFi because on-chain execution is complex and expensive. Users shouldn't need to know which DEX has the best price, which routing path minimizes gas, or how to split an order across five pools to avoid slippage. They just want to swap.

CoW Protocol (Coincidence of Wants) pioneered this in 2021:

CoW Protocol Intent Flow:

  User signs intent:                Solvers compete:
  "Swap 10 ETH for USDC,           ┌────────────────────┐
   minimum 32,000 USDC"            │ Solver A: Route via │
       │                            │ Uniswap v3, get     │
       │                            │ 32,150 USDC         │
       ▼                            ├────────────────────┤
  ┌──────────────┐                  │ Solver B: Match     │
  │  Intent Pool │──── auction ────►│ against another     │
  │  (off-chain) │                  │ user's intent (CoW),│
  └──────────────┘                  │ get 32,200 USDC     │
                                    ├────────────────────┤
                                    │ Solver C: Route via │
                                    │ Curve + 1inch, get  │
                                    │ 32,180 USDC         │
                                    └────────────────────┘


                                    Solver B wins (best price).
                                    Settles on-chain.

Key innovations:

  • Off-chain intents — the user signs a message expressing what they want but doesn't submit an on-chain transaction. This eliminates gas costs for the user and prevents MEV extraction
  • Batch auctions — intents are collected and solved in batches, allowing Coincidence of Wants (direct matching between users) before routing to external liquidity
  • Solver competition — solvers compete in an auction to provide the best execution. More solvers = better prices

UniswapX adopted the same model in 2023:

UniswapX:

  User signs off-chain order (intent)


  Dutch auction: price starts favorable to filler,
  decays toward market price over time

       ├──► Filler fills from own inventory
       ├──► Filler routes to Uniswap pools
       └──► Filler routes cross-chain (UniswapX v2)


  Settlement on-chain with escrow contracts

Across Protocol extended intents to cross-chain transfers — "move 1 ETH from Arbitrum to Base" becomes an intent that solvers fulfill by fronting liquidity on the destination chain and settling later via canonical bridges.

The Common Pattern

Every intent system shares the same architecture:

Universal Intent Architecture:

  ┌──────────┐     ┌───────────────┐     ┌──────────────┐
  │   User   │────►│  Intent Layer │────►│   Solvers    │
  │          │     │               │     │              │
  │ Expresses│     │ Collects,     │     │ Compete to   │
  │ what     │     │ validates,    │     │ fulfill at   │
  │ they want│     │ auctions      │     │ best price   │
  └──────────┘     └───────────────┘     └──────┬───────┘

                                    ┌───────────┴──────────┐
                                    │                      │
                              ┌─────▼─────┐          ┌─────▼─────┐
                              │ Liquidity │          │ Liquidity │
                              │ Source A  │          │ Source B  │
                              │ (DEX/pool)│          │ (exchange)│
                              └───────────┘          └───────────┘

Backpack's innovation is replacing the DeFi liquidity sources with TradFi ones: instead of routing to Uniswap pools, the solver routes to NYSE and NASDAQ.


4. How NBBO Is Constructed

The Full Picture

Understanding how NBBO works requires understanding the plumbing of US equity markets.

There are currently 16 registered stock exchanges in the US, plus roughly 30+ ATSes (dark pools) and 200+ broker-dealer internalizers. Each lit exchange continuously publishes its best bid and ask. The SIP aggregates all lit exchange quotes into the NBBO.

US Equity Market Structure:

  Lit Exchanges (16):                    Dark Venues:
  ┌───────────────────────┐              ┌───────────────────────┐
  │ NYSE                  │              │ IEX (technically lit  │
  │ NASDAQ                │              │   but has speed bump) │
  │ NYSE Arca             │              │ MEMX (also lit)       │
  │ NYSE American         │              │                       │
  │ CBOE BZX              │              │ Dark Pools:           │
  │ CBOE BYX              │              │ ├── Citadel Connect   │
  │ CBOE EDGX             │              │ ├── Virtu MatchIt     │
  │ CBOE EDGA             │              │ ├── UBS ATS           │
  │ NASDAQ BX             │              │ ├── MS Pool           │
  │ NASDAQ PSX            │              │ ├── Goldman Sigma X   │
  │ IEX                   │              │ └── ~30 more          │
  │ MEMX                  │              └───────────────────────┘
  │ MIAX Pearl Equities   │
  │ LTSE                  │              Wholesalers:
  │ NYSE National         │              ┌───────────────────────┐
  │ NYSE Chicago          │              │ Citadel Securities    │
  └───────────┬───────────┘              │ Virtu Financial       │
              │                           │ G1X (Susquehanna)     │
              │ All quotes                │ Jane Street           │
              ▼                           │ Two Sigma Securities  │
  ┌───────────────────────┐              └───────────────────────┘
  │         SIP           │                         │
  │  Aggregates all lit   │   Wholesalers must beat │
  │  quotes into NBBO     │   or match NBBO         │
  └───────────┬───────────┘                         │
              │                                     │
              ▼                                     ▼
  ┌─────────────────────────────────────────────────────────┐
  │                         NBBO                             │
  │  The best bid and best ask across all lit exchanges.     │
  │  This is the benchmark. Everyone must match or beat it.  │
  └─────────────────────────────────────────────────────────┘

NBBO Calculation Example

Here's a concrete example of NBBO calculation for AAPL, showing how the SIP processes incoming quotes:

Timestamp    Source        Event                           NBBO Update
─────────────────────────────────────────────────────────────────────
10:42:13.001  NYSE         Bid: $227.42 x 300              NBB: $227.42
10:42:13.003  NASDAQ       Bid: $227.43 x 500              NBB: $227.43 ←
10:42:13.005  IEX          Ask: $227.44 x 400              NBO: $227.44 ←
10:42:13.008  CBOE BZX     Bid: $227.42 x 150              (no change)
10:42:13.012  NYSE Arca    Bid: $227.43 x 400              (no change, ties NASDAQ)
10:42:13.015  CBOE EDGX    Ask: $227.44 x 250              (no change, ties IEX)
10:42:13.018  NASDAQ       Ask: $227.46 x 100              (no change, worse than $227.44)

Current NBBO: $227.43 bid x $227.44 ask (spread: $0.01)
Available at NBB: 900 shares (500 NASDAQ + 400 Arca)
Available at NBO: 650 shares (400 IEX + 250 EDGX)

The NBBO changes every time a venue posts a new best bid that's higher than the current national best bid, or a new best ask that's lower than the current national best ask. For liquid stocks like AAPL, this happens thousands of times per second.

Protected Quotes

Not all quotes contribute to the NBBO equally. Under Reg NMS, a quote must be protected to be part of the NBBO:

  • The exchange must be a registered national securities exchange
  • The quote must be automated (not manual/floor-broker quotes)
  • The exchange must have connectivity to route orders (to honor trade-throughs)

This is why dark pools don't contribute to the NBBO — they don't publish quotes. They can only execute at or better than the NBBO, but they don't set it.


5. Backpack's RFQ System: The Foundation

How RFQ Works Today

Backpack already operates a production RFQ system for two use cases: Convert (user-facing token swaps) and CollateralConversion (system-initiated conversions during liquidation). The full details are in RFQ Guide — here's the architecture that matters for extending to stocks.

Current RFQ Architecture:

  ┌─────────┐         ┌──────────────────┐         ┌─────────────┐
  │  User   │──RFQ──►│   RFQ Engine     │──RFQ──►│ Market Maker │
  │         │         │                  │         │ (Quoter)     │
  │ "Sell   │         │ ┌──────────────┐ │         │              │
  │ 1 SOL   │         │ │  RFQ Book    │ │◄─quote─│ "I'll pay    │
  │ for     │         │ │              │ │         │ $150"        │
  │ USDC"   │         │ │ Tracks best  │ │         └─────────────┘
  │         │         │ │ quote per    │ │
  │         │◄─fill───│ │ RFQ          │ │         ┌─────────────┐
  │         │         │ └──────────────┘ │◄─quote─│ Market Maker │
  └─────────┘         │                  │         │ (Quoter)     │
                      │ Settlement via   │         │              │
                      │ clearing house   │         │ "I'll pay    │
                      └──────────────────┘         │ $150.10"     │
                                                   └─────────────┘

RFQ Lifecycle

The RFQ lifecycle has three phases with specific time windows:

RFQ Timeline:

  t=0                    t=60s                    t=180s
  │                       │                        │
  │◄── Submission ──────►│◄── Acceptance ────────►│
  │    Window (1 min)     │    Window (2 min)       │
  │                       │                        │
  │  RFQ created.         │  Requester can accept   │  RFQ expires
  │  Market makers        │  a quote. In Immediate  │  if not filled.
  │  submit quotes.       │  mode, auto-accepts     │
  │  Best quote tracked.  │  first qualifying quote.│
  │                       │                        │
  ▼                       ▼                        ▼

Two Execution Modes

ModeBehaviorUse Case
AwaitAcceptUser sees quotes, manually picks oneConvert UI — user clicks "Convert" after seeing the price
ImmediateFirst quote meeting the price limit auto-acceptsCollateralConversion — system needs to convert collateral NOW, sets a limit price and takes the first acceptable quote

The RFQ Book: A Mini Solver

The RFQ Book is already a solver in disguise. It maintains quotes from multiple market makers in a sorted data structure (BTreeSet) and tracks the best quote for each RFQ:

RFQ Book — Solver Logic:

  RFQ: "Sell 1 SOL for USDC" (user wants to sell SOL, buy USDC)

  Incoming quotes from market makers:

  ┌─────────────────────────────────────────────┐
  │  Quote A: Bid $149.80, Ask $150.20          │
  │  Quote B: Bid $150.10, Ask $150.50          │  ← Best bid
  │  Quote C: Bid $149.90, Ask $150.00          │
  └─────────────────────────────────────────────┘

  For a Sell RFQ (user selling SOL):
  - User wants the highest bid (best price for their SOL)
  - RFQ Book sorts by bid price descending
  - Best quote = Quote B ($150.10)

  Engine emits "RequestCandidate" event when a new best quote arrives.
  User sees: "You'll receive $150.10 USDC for 1 SOL"

CollateralConversion: System-Initiated Intents

When a user's account has debt (needs USDC for margin), the system can automatically initiate a collateral conversion — selling non-USDC assets to cover the shortfall. This is a system-initiated intent resolved via RFQ:

Collateral Conversion Flow:

  Liquidator detects: Account has $500 USDC debt
  Account holds: 3.5 SOL (worth ~$525)


  System creates RFQ:
    symbol:     SOL_USDC_RFQ
    side:       Ask (selling SOL)
    quantity:   Calculated to cover $500 debt
    mode:       Immediate (auto-accept)
    price:      Mark price - 2% offset (price bound)
    type:       CollateralConversion


  Market makers quote → first quote within 2% of mark price auto-accepts


  SOL sold, USDC credited, debt cleared

This flow — system expresses intent, solver (market maker) fills it at the best price within bounds — is exactly the pattern that extends to stocks.


6. Extending RFQ to TradFi Brokers

The Architecture

The key insight is that Backpack's RFQ system doesn't need to know what kind of solver is on the other side. A crypto market maker quoting SOL/USDC and a TradFi broker quoting AAPL/USD use the same RFQ protocol. The only difference is where the solver sources its liquidity.

Extended RFQ Architecture — Crypto + Stocks:

  ┌─────────┐                  ┌──────────────────┐
  │  User   │───── intent ───►│   RFQ Engine     │
  │         │                  │                  │
  │ "Buy 10 │                  │  Same engine,    │
  │ AAPL"   │                  │  same protocol,  │
  │         │                  │  same settlement │
  └─────────┘                  └────────┬─────────┘

                        ┌───────────────┼───────────────┐
                        │               │               │
                        ▼               ▼               ▼
                 ┌────────────┐  ┌────────────┐  ┌────────────────┐
                 │ Crypto MM  │  │ Crypto MM  │  │ TradFi Broker  │
                 │ (e.g.      │  │ (e.g.      │  │ (Solver)       │
                 │ Wintermute)│  │ Jump)      │  │                │
                 │            │  │            │  │ Has DMA to:    │
                 │ Fills from │  │ Fills from │  │ ├── NYSE       │
                 │ own crypto │  │ own crypto │  │ ├── NASDAQ     │
                 │ inventory  │  │ inventory  │  │ ├── IEX        │
                 └────────────┘  └────────────┘  │ ├── Dark pools │
                                                 │ └── etc.       │
                   For crypto                    │                │
                   symbols                       │ Routes to      │
                   (SOL/USDC,                    │ NBBO across    │
                    BTC/USDC)                    │ all venues     │
                                                 └────────┬───────┘


                                                 ┌────────────────┐
                                                 │ US Equity      │
                                                 │ Exchanges      │
                                                 │                │
                                                 │ ~$500B/day     │
                                                 │ volume         │
                                                 │                │
                                                 │ Professional   │
                                                 │ MMs competing  │
                                                 │ for every bp   │
                                                 └────────────────┘

The Flow: User Intent to Stock Fill

Here's the complete lifecycle of a stock purchase through Backpack's solver model:

Step-by-Step: "Buy 10 AAPL" via RFQ

  1. USER EXPRESSES INTENT
  ┌──────────────────────────────────────────────────┐
  │ User: "Buy 10 shares of AAPL"                    │
  │ Mode: Immediate (price limit = current ask ± tol)│
  │ Symbol: AAPL_USD_RFQ                             │
  └──────────────────────┬───────────────────────────┘

  2. RFQ ENGINE BROADCASTS TO SOLVERS

  ┌──────────────────────────────────────────────────┐
  │ RFQ created in engine with:                       │
  │   rfq_id: unique identifier                      │
  │   symbol: AAPL_USD_RFQ                           │
  │   side: Bid (user is buying)                     │
  │   quantity: 10                                   │
  │   execution_mode: Immediate                       │
  │   price: $227.50 (user's max price)              │
  │   submission_window: 60 seconds                  │
  │                                                   │
  │ WebSocket: rfqUpdate broadcast to all quoters    │
  └──────────────────────┬───────────────────────────┘

  3. SOLVER (TRADFI BROKER) RESPONDS

  ┌──────────────────────────────────────────────────┐
  │ Broker receives RFQ via WebSocket/API             │
  │                                                   │
  │ Broker's internal logic:                          │
  │ ├── Check current NBBO for AAPL                  │
  │ │   NBB: $227.43, NBO: $227.44                   │
  │ ├── Check dark pool availability                 │
  │ │   Mid-point peg available at $227.435          │
  │ ├── Calculate fill price including costs         │
  │ └── Submit quote: Ask $227.44                    │
  │                                                   │
  │ Quote submitted to Backpack RFQ engine           │
  └──────────────────────┬───────────────────────────┘

  4. IMMEDIATE AUTO-ACCEPT

  ┌──────────────────────────────────────────────────┐
  │ Engine checks: quote.ask_price ($227.44)         │
  │              ≤ rfq.price ($227.50) ✓             │
  │                                                   │
  │ Auto-accept triggered.                           │
  │ Clearing house validates both accounts.          │
  │ Settlement executed.                              │
  └──────────────────────┬───────────────────────────┘

  5. SETTLEMENT

  ┌──────────────────────────────────────────────────┐
  │ User account:                                     │
  │   - USD balance: -$2,274.40 (10 × $227.44)      │
  │   + AAPL holdings: +10 shares                    │
  │                                                   │
  │ Broker account:                                   │
  │   + USD balance: +$2,274.40                      │
  │   - AAPL holdings: -10 shares (or routes to buy) │
  │                                                   │
  │ Fee: baked into quote spread                     │
  └──────────────────────────────────────────────────┘

  6. EXTERNAL SETTLEMENT (BROKER SIDE)

  ┌──────────────────────────────────────────────────┐
  │ Broker routes order to US exchange:               │
  │   Buy 10 AAPL @ NBBO ($227.44)                  │
  │                                                   │
  │ T+1 settlement via DTC/NSCC:                     │
  │   Shares move to broker's clearing account       │
  │   Broker's Backpack position reconciled          │
  └──────────────────────────────────────────────────┘

Why RFQ Is the Right Mechanism

RFQ is the natural fit for this model because:

  1. No separate order book needed — the user doesn't interact with a stock order book. They submit an intent (RFQ) and get a fill.

  2. Solver competition — multiple brokers or market makers can compete to fill the same RFQ. Better competition = better prices.

  3. Price bounds — the Immediate mode price limit prevents execution at unreasonable prices. The system can bound quotes relative to a reference price (e.g., last NBBO).

  4. Same settlement infrastructure — stock RFQ fills settle through the same clearing house as crypto RFQ fills. No new settlement system needed.

  5. Collateral conversion works identically — if AAPL drops and the system needs to sell it to cover margin, the CollateralConversion flow is the same: system creates an RFQ, broker quotes, auto-accept settles.


7. Why Not Build a Stock Order Book?

The Obvious Question

Why not just run a CLOB for AAPL on Backpack? The exchange already has a matching engine. Just add AAPL as a market and let people trade.

The answer is liquidity economics.

The Liquidity Problem

Backpack AAPL Order Book (hypothetical):

  Bids (Buy)                 Asks (Sell)
  ┌──────────────┐          ┌──────────────┐
  │  5 @ $227.30 │          │ 10 @ $227.60 │
  │  3 @ $227.20 │          │  8 @ $227.70 │
  │ 10 @ $227.00 │          │ 15 @ $227.80 │
  └──────────────┘          └──────────────┘
  Spread: $0.30 (13 bps)
  Depth at touch: 5 shares bid, 10 shares ask

vs. AAPL on US Equity Exchanges (aggregated):

  Bids (Buy)                     Asks (Sell)
  ┌────────────────────┐        ┌────────────────────┐
  │ 50,000 @ $227.43   │        │ 65,000 @ $227.44   │
  │ 82,000 @ $227.42   │        │ 45,000 @ $227.45   │
  │ 61,000 @ $227.41   │        │ 73,000 @ $227.46   │
  │ 95,000 @ $227.40   │        │ 88,000 @ $227.47   │
  └────────────────────┘        └────────────────────┘
  Spread: $0.01 (0.4 bps)
  Depth at touch: 50,000 shares bid, 65,000 shares ask

The numbers aren't even close:

MetricBackpack AAPL Book (hypothetical)US Equity Market
Spread~$0.30 (13 bps)$0.01 (0.4 bps)
Depth at touch~5-10 shares50,000+ shares
Daily volumeMaybe thousands of shares~60M shares ($14B)
Market makers0-2 (maybe)Dozens competing

A user buying 100 shares of AAPL on a Backpack order book would pay ~$30 more in spread costs than routing through a broker to the real market. That's a terrible product. No rational trader would use it.

The Structural Reason

The liquidity asymmetry isn't just a cold-start problem that goes away with time. US equity markets have structural advantages that a crypto exchange can't replicate:

  1. Reg NMS creates a unified national market — all 16 exchanges are linked. An order posted on IEX competes with orders on NYSE. This concentrates liquidity.

  2. Designated market makers — NYSE has Designated Market Makers (DMMs) with obligations to maintain two-sided quotes. Exchanges pay rebates to incentivize liquidity provision.

  3. Massive institutional flow — pension funds, mutual funds, ETFs, and index funds generate enormous daily volume. AAPL alone does ~60 million shares/day.

  4. Decades of infrastructure — the technology (SIP, direct feeds, smart order routers), the regulation (Reg NMS, best execution rules), and the market structure (exchanges, ATSes, wholesalers) have evolved over 30+ years.

Trying to compete with this by building a parallel order book on a crypto exchange is like building a puddle and hoping to compete with the ocean.

The Right Mental Model

Wrong approach:                     Right approach:

  ┌──────────────┐                   ┌──────────────┐
  │   Backpack   │                   │   Backpack   │
  │              │                   │              │
  │  ┌────────┐ │                   │  ┌────────┐ │
  │  │ Crypto │ │                   │  │ Crypto │ │
  │  │ CLOB   │ │                   │  │ CLOB   │ │
  │  └────────┘ │                   │  └────────┘ │
  │  ┌────────┐ │                   │  ┌────────┐ │
  │  │ Stock  │ │ ← Thin,           │  │  RFQ   │ │──► TradFi Broker
  │  │ CLOB   │ │   wide spreads,   │  │ Bridge │ │      │
  │  └────────┘ │   bad prices      │  └────────┘ │      ▼
  │              │                   │              │   US Equity
  └──────────────┘                   └──────────────┘   Exchanges
                                                        (NBBO)

  Build your own                     Tap into existing
  inferior market                    $500B/day market

The RFQ/solver model lets Backpack offer stock trading at NBBO quality without needing to solve the liquidity problem from scratch. The TradFi broker has already solved it.


8. Price Improvement and Dark Pools

What Is Price Improvement?

Price improvement means getting a better price than the NBBO. If the NBBO is $227.43 bid / $227.44 ask and you're buying, price improvement means paying less than $227.44 — perhaps $227.435 or even $227.43.

This sounds impossible (why would someone sell below the best ask?) but it happens constantly in US equities:

Where Price Improvement Comes From:

  NBBO: $227.43 bid / $227.44 ask

  1. MIDPOINT MATCHING (Dark Pools):
     Dark pools match at the midpoint: $227.435
     Both buyer and seller get price improvement.
     Buyer saves: $0.005/share
     Seller gets: $0.005/share more

  2. WHOLESALER EXECUTION:
     Citadel Securities (or Virtu) buys retail flow from
     Robinhood. They fill retail orders at NBBO or better
     because retail flow is non-toxic (uninformed).

     Buyer order arrives: "Buy 100 AAPL"
     Citadel fills at: $227.438 (0.2¢ price improvement)
     Citadel profits from spread: keeps ~$0.002/share

  3. SUB-PENNY IMPROVEMENT:
     SEC Rule 612 prohibits sub-penny quoting on
     lit exchanges for stocks ≥$1. But dark pools
     and wholesalers CAN execute at sub-penny prices.
     This is where most price improvement originates.

Why Price Improvement Matters for Backpack

A TradFi broker acting as Backpack's solver has access to all of these venues. The broker can:

  1. Route to lit exchanges at NBBO — guaranteed best price across all venues
  2. Route to dark pools for midpoint matching — potential sub-penny price improvement
  3. Internalize against its own inventory if it can beat NBBO — more price improvement

The broker's incentive is to provide the best execution because Backpack can measure execution quality against the NBBO benchmark and switch brokers if quality degrades.

Broker Execution Quality Measurement:

  For each fill, compare to NBBO at time of execution:

  Fill Price    NBBO Ask    Improvement    Assessment
  ──────────    ────────    ───────────    ──────────
  $227.440      $227.44     $0.000         At NBBO (acceptable)
  $227.435      $227.44     $0.005         Price improvement (good)
  $227.430      $227.44     $0.010         Significant improvement (great)
  $227.450      $227.44    -$0.010         Worse than NBBO (violation)

  Aggregate metrics:
  - % of fills at or better than NBBO
  - Average price improvement per share
  - Effective spread vs. quoted spread

9. Latency Considerations

The Latency Budget

Stock trading through Backpack's bridge has a different latency profile than crypto trading on the CLOB:

Latency Budget — Stock RFQ vs. Crypto CLOB:

  Crypto CLOB (order → fill):
  ┌────────────────────────────────────────────┐
  │ API receipt → Matching → Fill notification │
  │     ~1ms         ~0.1ms       ~1ms         │
  │                                    Total: ~2-5ms
  └────────────────────────────────────────────┘

  Stock RFQ (intent → fill):
  ┌────────────────────────────────────────────────────────┐
  │ RFQ        → Broker     → Route to    → Fill back     │
  │ submission   receives     exchange      to Backpack    │
  │   ~5ms       ~10ms        ~50ms          ~10ms         │
  │                                                        │
  │                              Total: ~50-200ms          │
  └────────────────────────────────────────────────────────┘

50-200ms is slower than direct exchange access, but it's perfectly acceptable for stock trading through a broker intermediary. For context:

SystemTypical LatencyTarget User
HFT co-located1-10 μsMarket makers, prop firms
Direct market access (DMA)100-500 μsInstitutional traders
Retail broker (Schwab, Robinhood)50-500 msRetail investors
Backpack RFQ bridge50-200 msCrypto-native retail + institutional

Backpack's target user isn't an HFT firm trying to snipe penny-wide AAPL spreads. It's someone who wants to buy AAPL and use those shares as collateral for a BTC perp position — all in one account. For that use case, 100ms latency is irrelevant.

Market Hours and Off-Hours

US equity markets have defined trading hours:

US Market Hours (Eastern Time):

  4:00 AM ───── Pre-market (limited liquidity) ────── 9:30 AM
  9:30 AM ───── Regular trading (full NBBO) ─────── 4:00 PM
  4:00 PM ───── After-hours (limited liquidity) ──── 8:00 PM
  8:00 PM ──────────── Market closed ──────────────── 4:00 AM

  Implications for Backpack:
  ┌──────────────────────────────────────────────────────┐
  │ Regular hours (9:30-4:00 ET):                        │
  │   Full NBBO available, tight spreads, deep liquidity │
  │   RFQ fills at best execution quality                │
  │                                                      │
  │ Extended hours (4:00-9:30, 4:00-8:00):               │
  │   Wider spreads, thinner books                       │
  │   RFQ still works but execution quality lower        │
  │   Broker may widen quotes to reflect risk            │
  │                                                      │
  │ Market closed (8:00 PM - 4:00 AM ET):                │
  │   No US equity trading available                     │
  │   Stock positions held, valued at last close         │
  │   Crypto continues trading 24/7                      │
  └──────────────────────────────────────────────────────┘

This creates an interesting asymmetry: crypto trades 24/7 but stocks don't. For collateral valuation, positions in AAPL held overnight are valued at the previous close (or last extended-hours trade). Overnight risk — the possibility that AAPL gaps up or down at the open — must be reflected in margin requirements (haircuts). See Collateral for how haircuts work.


10. The Unified System: Stocks as Collateral

Why This Matters

The RFQ bridge to TradFi is not just about offering stock trading. Stock trading alone is a commodity — Robinhood, Schwab, and Interactive Brokers all do it. The differentiation is what happens after you buy the stock.

On Backpack, those 10 shares of AAPL become collateral in your unified portfolio. They back your BTC perpetual position, your SOL spot holdings, and your prediction market bets — all cross-margined under one account.

Unified Portfolio — Stocks as Collateral:

  ┌─────────────────────────────────────────────────────┐
  │                  Your Backpack Account              │
  ├─────────────────────────────────────────────────────┤
  │                                                     │
  │  Assets:                    Positions:              │
  │  ┌──────────────────┐      ┌──────────────────────┐ │
  │  │ 10 AAPL ($2,274) │      │ BTC-PERP Long 0.5    │ │
  │  │ 5 SOL  ($750)    │      │ ETH-PERP Short 2.0   │ │
  │  │ 0.1 BTC ($9,700) │      │                      │ │
  │  │ 2,000 USDC       │      │                      │ │
  │  └──────────────────┘      └──────────────────────┘ │
  │                                                     │
  │  Collateral Calculation:                            │
  │  ┌──────────────────────────────────────────────┐   │
  │  │ Asset     Value     Haircut   Collateral     │   │
  │  │ AAPL      $2,274    10%       $2,047         │   │
  │  │ SOL       $750      30%       $525           │   │
  │  │ BTC       $9,700    20%       $7,760         │   │
  │  │ USDC      $2,000    0%        $2,000         │   │
  │  │                                              │   │
  │  │ Total collateral:            $12,332         │   │
  │  │ Margin required:             $5,200          │   │
  │  │ Excess margin:               $7,132          │   │
  │  └──────────────────────────────────────────────┘   │
  │                                                     │
  │  AAPL at 10% haircut means stocks are BETTER        │
  │  collateral than most crypto assets (20-50% haircut)│
  │  because they're less volatile.                     │
  └─────────────────────────────────────────────────────┘

Stocks are excellent collateral because they're relatively stable compared to crypto. A 10% haircut on AAPL vs. 30% on SOL means your stock holdings contribute more collateral value per dollar. This is exactly how TradFi portfolio margin works — a basket of blue-chip stocks backs your leveraged positions with minimal capital lock-up.

The Collateral Conversion Loop

When collateral conversion is needed (account needs USDC to cover margin), the system uses the same RFQ bridge to sell stock:

Collateral Conversion — Selling AAPL via RFQ:

  Account margin violation detected:
  Required: $5,200    Available: $4,800    Shortfall: $400


  System intent: "Sell enough AAPL to cover $400 shortfall"


  CollateralConversion RFQ:
    symbol: AAPL_USD_RFQ
    side: Ask (selling AAPL)
    quote_quantity: ~$420 (shortfall + buffer)
    mode: Immediate
    price: Mark price - 2% offset (price bound)


  TradFi broker receives RFQ:
    Checks NBBO: $227.43 bid
    Quotes: Bid $227.40 (within 2% of mark)


  Auto-accept. ~1.85 shares of AAPL sold.
  $420 USDC credited to account.
  Margin restored.

This is the same collateral reconciliation loop that already runs for crypto assets — the only difference is that the solver on the other side is a TradFi broker routing to stock exchanges instead of a crypto market maker quoting from inventory.

Why No One Else Can Do This

The complete picture of why Backpack's approach is unique:

The Competitive Landscape:

  ┌──────────────────────────────────────────────────────────┐
  │                WHO CAN DO STOCKS + CRYPTO?               │
  ├──────────────┬──────────────┬──────────────┬─────────────┤
  │              │ Real Stock   │ Cross-Margin │ Broker-     │
  │              │ Ownership?   │ All Assets?  │ Dealer?     │
  ├──────────────┼──────────────┼──────────────┼─────────────┤
  │ Robinhood    │ ✓ (stocks)   │ ✗            │ ✓           │
  │              │ ✗ (no perps) │ (no crypto   │             │
  │              │              │  cross-margin│             │
  ├──────────────┼──────────────┼──────────────┼─────────────┤
  │ Coinbase     │ ✗ (stopped)  │ ✗            │ ✗           │
  │              │              │ (ships the   │             │
  │              │              │  org chart)  │             │
  ├──────────────┼──────────────┼──────────────┼─────────────┤
  │ Binance      │ ✗            │ ✗            │ ✗           │
  │              │ (synthetics  │              │             │
  │              │  only)       │              │             │
  ├──────────────┼──────────────┼──────────────┼─────────────┤
  │ Ondo/Wrappers│ Sort of      │ ✗            │ ✗           │
  │              │ (custodian   │ (wrapper risk)│             │
  │              │  holds them) │              │             │
  ├──────────────┼──────────────┼──────────────┼─────────────┤
  │ Interactive  │ ✓            │ ✓            │ ✓           │
  │ Brokers      │              │ (TradFi only)│             │
  │              │              │ No crypto    │             │
  ├──────────────┼──────────────┼──────────────┼─────────────┤
  │ BACKPACK     │ ✓            │ ✓            │ ✓           │
  │              │ (real shares │ (stocks +    │ (pursuing   │
  │              │  via broker- │  crypto +    │  BD path)   │
  │              │  dealer)     │  perps +     │             │
  │              │              │  predictions)│             │
  └──────────────┴──────────────┴──────────────┴─────────────┘

The moat has three layers:

  1. Regulatory — broker-dealer registration is slow and expensive. Most crypto exchanges haven't even started the process.

  2. Technical — the RFQ bridge, collateral engine, and cross-margin risk system need to work together seamlessly. Building this from scratch is a multi-year engineering effort.

  3. Product — the value isn't "stocks on a crypto app" (Robinhood already does that). The value is unified cross-asset margin: your AAPL shares backing your BTC perp position, with real-time risk management across everything.


Further Reading

  • RFQ Guide — how Backpack's Convert/RFQ system works today
  • CLOB vs AMM — the exchange architecture landscape, including RFQ networks
  • Collateral — how collateral valuation and haircuts work
  • Portfolio Margin — cross-margin and portfolio margin concepts
  • Liquidation Engine — how liquidations trigger collateral conversion
  • FIX Protocol — how TradFi institutional connectivity works
  • Dark Pools — hidden liquidity venues and price improvement