Tokenized stocks on Solana do not hold their share count in the balance. Both of the large issuers move it in a separate on-chain field, a multiplier, which is how they apply dividends and stock splits without minting or burning anything. Trade data reports the raw token amount, which is exactly what a raw amount should be and is not a share count. Divide a trade's dollar value by it and you get a price per token. For 424 of 1,101 xStocks that is not the price of the share, and for Netflix it is ten times it.
Backed's xStocks and Ondo Global Markets both issue on Solana under Token-2022, and both use
the scaledUiAmount extension. The mint stores a multiplier, and the number of shares
a holder owns is the raw balance times that multiplier. When a dividend is paid the custodian
reinvests it and the multiplier rises. When the stock splits, the multiplier moves
proportionally. Backed's own integration guide is explicit about the consequence: use raw amounts
for transactions, display scaled amounts, and do not mix them.
So the raw balance never moves on a corporate action. That is the design working. It is also why a share count cannot be read off a transfer.
Netflix is the clearest case. Backed's multiplier history records a single event on NFLXx,
reason Split, taking the multiplier from 1 to 10 with effect from 2025-11-16. One
NFLXx token has represented ten Netflix shares ever since.
The obvious way to price a tokenized share from trade data is to divide the trade's dollar value by the token amount. We ran that over 90 days of Solana DEX trades for fifteen tickers on 2026-09-30, and checked the answers against Hyperliquid's oracle price for the same stocks, read the same afternoon. The oracle is an independent instrument that has never heard of either issuer.
| Ticker | Multiplier | Implied $/token | Oracle $/share | Ratio | ÷ multiplier, vs oracle |
|---|---|---|---|---|---|
| NFLX | 10.0 |
704.26 | 69.645 | 10.11× | +1.12% |
| NVDA | 1.0017 |
228.54 | 230.350 | 0.99× | -0.95% |
| MSFT | 1.0059 |
513.41 | 517.880 | 0.99× | -1.45% |
| AAPL | 1.0033 |
331.52 | 336.150 | 0.99× | -1.70% |
A factor of ten cannot be a timing artifact, and dividing by the multiplier brings Netflix back in line with the other three. The second issuer agrees independently: Ondo's NFLXon, a different contract with a different holder base, implies $711.55 a token and carries the same 10.0 multiplier.
The residual percentages are not a measurement of anything. The implied prices are three-day medians and the oracle readings are point-in-time, taken about an hour apart, so a percent or so of disagreement is the windows, not the tokens.
Netflix announces itself. The other rows do not. Outside the split cases the correction runs between 0.17% and 0.59%, which is smaller than the ordinary spread between a three-day median and an oracle snapshot, one-directional, and invisible to inspection. It is also the same size as the tracking error anyone measuring this asset class is trying to measure. That is the part worth knowing before you publish a number.
The extension stores the pending value in a separate field with an activation timestamp, and it does not move that value into the main field when the time passes. Reading the multiplier directly therefore returns the superseded number for any token whose last corporate action has already activated. On 2026-09-30 that was 416 of 1,101 xStocks.
NFLXx is one of them. Read naively it reports a multiplier of 1.0, against a true 10.0. The correct value is the pending one once its timestamp has passed, which is three lines of code and no lines at all if you do not know to look.
Ondo's mints happen to store the same value in both fields today, so this particular reading does not bite there right now. That is a property of their current state, not a guarantee.
We read every mint both issuers publish, live over public RPC, and computed the multiplier actually in force.
| Issuer | Mints read | Multiplier not 1 | Range |
|---|---|---|---|
| Backed xStocks | 1,101 | 424 (38.5%) | 0.5111 to 10.0168 |
| Ondo Global Markets | 451 | 242 (53.7%) | 0.0667 to 10.0261 |
The clusters are what you would expect once you know the mechanism. Most of the affected tokens sit just above 1, accruing reinvested dividends. A handful sit at 2, 5 or 10 after splits, and a few sit below 1 after reverse splits. The lowest we found is 0.0667.
A decimals-adjusted token amount is a raw amount, and it reports the raw amount correctly. The multiplier is a display-layer extension by design, and the issuers document it as such. Nothing here says a data provider is wrong, and we are not asking anyone to change a column. The failure is in the join: a raw amount and a share price are different units, and the step that converts one to the other lives in an extension field that a price query has no reason to touch.
It generalises past any one source. Any pipeline that reads a Token-2022 balance or trade amount and treats it as a share count has this problem, whether the amounts come from an indexer, an RPC node or a wallet.
Three steps, none of them expensive.
Read the multiplier in force, not the stored field. Take the pending value if its activation timestamp has passed, otherwise the current one.
Apply it per trade, using the value as of that trade. Today's multiplier is
the wrong one for a trade from last quarter, because a dividend or split since then has moved it.
Backed publishes a free, keyless endpoint returning every change with its reason and activation
time; for Ondo the same events are decoded on-chain as an
update_scaled_ui_multiplier instruction.
Identify the token by its mint authority, not its ticker. Every one of the
1,552 mints we read is minted by a single authority per issuer:
7pt9tkct… for xStocks and 9foMHsSD… for Ondo Global Markets. A ticker is
free for anyone to claim, which is not a hypothetical in this asset class.
Multiplier and supply figures: every mint both issuers publish, read live over
public Solana RPC on 2026-09-30, from each issuer's own published token list. Implied prices: Dune
dex_solana.trades, 90-day window, three-day medians, executed 2026-09-30 17:14 UTC.
Oracle prices: Hyperliquid's xyz perp oracle, from the readings committed at
data/hip3_ctx/2026-09-30.csv, taken the same afternoon. Reproduce with
scripts/build_tokenized_equity_registry.py (free, no API key) and
scripts/run_tokenized_equity_probe.py. Method and the full census:
research_drafts/2026-09-30-tokenized-equity-phase0.md.