BSC Integration Map — who routes to whom

Data coverage & freshness checking…
loading…

Integration map

General
Click any node to trace its path sharp mid wide/noisy
all lines solid · fainter = routing / partner-declared, not independently on-chain-proven click a node for detail

Weekly order-volume by size

Executed on-chain bStock secondary volume each week, split by trade size — small (under $1k), medium ($1k–$10k), large ($10k+). Every dollar is a real trade that settled on-chain (Dune), not a quote. This is the week-over-week history behind the trailing-7d grid below; volume & trade counts reach back further than the spread (they don't need the Binance oracle).
Weekly order-volume distribution
small / medium / large · stacked by ISO week

Web3 Wallet demand — order sizes

What order sizes actually flow through Binance Web3 Wallet, our biggest distribution channel — the demand side to pair against Venue quality by order size below (which shows how well venues serve each size). We can't tag Web3-Wallet trades directly, so we proxy them by the Binance DEX Router (0xb300000b72deaeb607a12d5f54773d1c19c7028d, BscScan-labelled "Binance: DEX Router" — the on-chain swap router behind Web3 Wallet + Binance Alpha), which carries the large majority of all bStock secondary volume (it routes down into PancakeSwap etc under the hood). Every bar is real on-chain trades (Dune), not quotes. Proxy caveat: this is a superset of wallets on that router and a subset of Web3 Wallet's full routing, but it captures the dominant Alpha-farming flow.
Order-size distribution — Web3 Wallet vs whole market
share of Web3 Wallet flow by trade size · vs all bStock secondary

Who provides the price

Share of trading = each venue's cut of all bStock secondary volume on BSC (every asset, incl. QQQ). Usual spread per venue is now shown by order size in Venue quality by order size below.
Share of trading — 7d
each venue's % of all bStock secondary volume (every asset) · under 0.10% not shown

Venue quality by order size

Real trades that actually happened on-chain over the last 7 days, grouped by trade size. Trades = the venue's full count of real trades (every secondary trade, including QQQ farming).

How we match the Binance price: for every on-chain trade, we are getting the Binance price at the exact second so the spread is correct. The spread is how far the trade's price sat from that Binance fair price — greener = tighter.

We can only do this for trades where we have a Binance price saved for that exact second, so the spread is measured on those matched trades — the live share is stated above the grid. That means a venue can show a big trade count with a spread measured on fewer trades (hover any cell to see both numbers). Two things lower it: a day when our recorder was down (unrecoverable — Binance keeps no historical bid/ask), and a bStock we only started recording recently, whose earlier trades therefore have no reference at all. Pick an asset below — the top bStocks ranked by official 7-day volume (BNB Chain dashboard) — or see all combined.
Why do we trust that the Binance price we compare against is correct?
1. It's real Binance data, not an estimate. We read the price straight from Binance's own live order book (the data-stream.binance.vision feed) — the exact same order book that powers the binance.com website, not a third-party proxy. We verified this directly: the prices our system saved matched Binance's own official API to the cent.

2. We compare at the exact moment of each trade. We save the Binance price every second, and for every on-chain trade we use the Binance price from the exact second that trade happened — never an average or an old price. A trade is only scored when we observed a real Binance price at its own second.

3. Only prices we actually saw count. If we didn't observe a real Binance price at a trade's exact second, that trade is left out of the spread rather than guessed — so every spread number shown is backed by a real Binance price at the right moment. The current day is kept fresh by uploading the saved Binance prices to Dune every hour (not once a day), so recent trades match right away instead of waiting. Anyone can re-run the full check on the Dune query linked below.

Venue quality by order size — vs Nasdaq (chain & issuer landscape)

Same question as the grid above, but the dimension is chain (and issuer) instead of venue, and the reference is the real underlying-equity price — the Nasdaq bid/ask midpoint, sampled every second, not a Binance mirror. Covers 8 chain/issuer combinations on the same seven tickers: bStocks on BSC, Ondo on BSC/Ethereum/Solana, xStocks + Sunrise on Solana, xStocks on OKX X Layer, Coinbase-issued tokens on Base, and Robinhood's own tokenized-stock app-chain. Pick a ticker below, or see all combined.
Which Nasdaq price this is measured against — and why the matched share is lower than the Binance grid
On-chain trades happen 24/7. Nasdaq quotes only on weekdays — roughly 13:30–20:00 UTC for the regular session, plus pre-market and after-hours either side of it. Every on-chain trade here is matched to the Nasdaq price at its own block second, looking back at most one second and never forward — so a reported spread is always measured against the quote standing at the moment of the trade, not an average over a window. A trade that happened while Nasdaq was closed entirely (overnight, weekends) has no live equity quote to match against, and is correctly excluded from the spread number while still counting toward total trades and volume. So a lower matched share on the All hours view is the expected ceiling, not a data gap — it is the honest fraction of on-chain flow that overlaps a live Nasdaq market. Use the session toggle below to switch to Market hours — trades placed during the regular session, where the large majority match — or to Off hours, which still matches a meaningful share because a good deal of on-chain flow lands in pre-market and after-hours. The exact live figure for whichever view you have selected is printed directly above the grid.

What the reference actually is. The real Nasdaq order book (XNAS.ITCH), reduced to the standing best bid and best offer once per second, and we compare against the midpoint between them. The midpoint matters: an individual trade print sits at either the bid or the offer, so scoring against one would add half a spread of noise to every comparison. Quotes are stored permanently, second by second, so this grid keeps reaching further back over time. Seconds where Nasdaq had no two-sided quote are left as genuine gaps — nothing is carried forward or filled in.

Corrected 2026-08-28. Until that date this panel compared against a different dataset that we described as the consolidated US tape. It was not: it carried no Nasdaq prints at all, drew about 93% of its prints from a single venue (IEX), and covered only a small share of US volume. It was also a last trade rather than a midpoint, and it only printed in a minority of seconds — which is the only reason the match window used to be ten seconds instead of one. Switching to the real Nasdaq book moved the typical price by essentially zero, so nothing here was systematically skewed; what it buys is precision, and it means small differences on the thinner names are now measurable where before they sat inside the reference's own margin of error.

What counts as a trade here — also corrected 2026-08-28. A trade is only comparable if we can put a dollar value on it, and two real markets were being dropped rather than shown as thin because our data source could not. X Layer's QQQ, TSLA and CRCL liquidity moved into a USDC pool in mid-August that had no price attached, so those trades were valued from the stablecoin itself. And Robinhood's largest QQQ market is not priced in dollars at all — it is QQQ against SPY, stock for stock — so those are valued from the other stock's Nasdaq price at the same second. Read those cells with that in mind: a stock-for-stock swap never touches cash, so what is measured is how far it landed from Nasdaq's own exchange rate between the two, not the cost of buying stock with dollars. Trades quoted in a US stock we hold no Nasdaq feed for, or in a memecoin, are still left out.

Venue quality by order size — week by week

The grid above is the trailing 7 days. This is the full week-by-week history of the same thing — how tight execution was, by trade size, for every week since the flagship bStocks (NVDA, CRCL, SPCX, TSLA, MU, SNDK, QQQ) listed on Binance in mid-June. Greener = tighter to the Binance price. You can watch the market mature: spreads ran wide in the first thin weeks and compressed once real market-makers arrived. Pick a venue below, or see all combined.
Which Binance price each week is measured against — and why it changes mid-July
Every week in this grid is labelled with the Binance price it was scored against, and there are two eras. The rule for matching is the same in both: each on-chain trade is compared to the Binance price at that trade's own second — at or before the block second, never after, never more than 1 second stale, with a 10% sanity band. Only the price series differs.

Weeks from 2026-07-20 — Binance mid. These use the exact bid/ask midpoint we record ourselves every second, which is the identical series the live 7-day grid above uses. Because a resting order book has a price in every second, nearly every executed trade gets scored.

Weeks before 2026-07-20 — Binance last-trade. Our recording only starts 2026-07-08, and Binance publishes no historical archive of its bid/ask — we checked, that data does not exist for past dates, not even for BTC. What Binance does keep is every actual trade print, back to each stock's listing, so that is all the earlier weeks can use. The catch is that a thin mirror only prints in a minority of seconds, so most trades never find a price and go unscored.

Why we switched. The sparse last-trade reference left most trades unscored, and the ones that survived were not a random sample: most on-chain bStock volume trades overnight UTC, exactly when the Binance mirror prints least, so the sample over-weighted US hours — and execution measures wider in the busy seconds when Binance is actively printing. The published number was therefore biased wide. On the trades where both references exist the two medians agree closely, so this fixed the sample, not the price we compare to.

Every week states its own matched count and share directly under the date, so the sample behind each row is never implied. When a mid-scored week lands materially below the level those weeks normally reach, the count turns amber — that means our own recorder had a gap that week, not that the market changed. Those seconds cannot be recovered afterwards: Binance keeps no historical archive of its bid/ask, only of completed trades.

Do not compare across the divider. The horizontal line in the grid marks where the reference changes. Earlier weeks keep the thin last-trade basis and read wider for that reason, not because execution was worse. Cells with too few matched trades are suppressed or faded rather than shown as a confident number. Every number is a real executed on-chain trade (Dune) matched to a real Binance price — nothing is estimated. Full query linked below.