Methodology

Published estimates of the tokenized real-world-asset market disagree by wide margins, because they make different assumptions about what counts, usually silently. twenty47 makes its assumptions explicit, switchable, and attached to the data. Every value on this page is read back out of the database, not typed, so it cannot drift from what the pipeline actually did.

Start here if you want to check a number

  1. Find its date. Every figure on this site belongs to a day, and the day is printed beside it. The footer of every page says which day’s reading the page was built from and when the database was built.
  2. Get the same number as data. The day’s headline figures are served as JSON at /data/market_state.json and /data/today.json, with the date they describe inside each file. Every day is also kept at its own permanent URL, for example pub-851bd9b040a64306a75733cafce51b66.r2.dev/snapshots/2026/09/29/market_state.json, so two days can be diffed and nothing published is ever revised silently.
  3. See the rows behind it. The audit console at twenty47.io carries the same numbers as full tables you can filter, down to the protocol, the chain and the block.
  4. Read the definition. The metric library in the repository has one entry per published metric, and the “is NOT” sections carry the weight.
  5. Reproduce a chain read. For any protocol on the how we count page, the contract, the block and the price basis are recorded on every row; the same call to a public node returns the same supply.

What produced the current headline number

As ofMarket sizeChains countedChains excludedNoise floor (USD)Built at
29 Sep 2026 $26.2B 41 none 0 2026-09-30T23:24:01Z

Where the headline number comes from

Since 27 September 2026 the market total is composed from two sources at one grain. For every (protocol, chain, day) where this project has read the token contracts itself, the value is our chain read: the on-chain supply of every contract named for that protocol in DefiLlama’s open-source adapters, at the block nearest 00:00 UTC on EVM chains, priced by CoinGecko, with the adapter path, the block and the price basis recorded on every row. Everywhere else the value is DefiLlama’s per-chain figure, aggregated by us under the toggles below after filtering out its derived series (borrowed, staking, pool2, treasury and composite keys like Ethereum-borrowed, which are not chains). Never both for one grain, so nothing is counted twice, and the headline carries the share that is ours on each day.

Why two sources: in August 2026 DefiLlama moved the largest tokenized-asset protocols behind its paid API and its free feed began reporting their value as zero. The free feed alone read $4.5B for a market it had reported at $27.7B seven weeks earlier. The chain reads replace what the feed dropped and nothing else. The evidence that a chain read may stand in for the feed: on 8 August 2026, the last day the feed carried those protocols, the two sources agree within 5% on every chain row above $1M, 20 of 22 within 1%, and a test keeps that comparison running on every build.

Measured now, 29 September 2026: $26.2B across 41 chains carrying value, Ethereum 49.6%, 82.5% read from chain by this project, multi-chain exposure share 67.1% (protocols reported on more than one chain, as of 29 Sep 2026). The single-source series read $27.7B across 56 chains on 8 August 2026, its last complete day.

Some of what we read, no aggregator tracks at all. Since 29 September 2026 the registry includes Franklin Templeton’s BENJI, a tokenized government money fund on seven chains that DefiLlama has no entry for. Its value is in the total like everything else read from chain, and it is reported separately, $663M on 29 Sep 2026, so that anyone comparing this total with an aggregator’s can subtract it.

The composed series has a step on 27 September 2026. Solana, Stellar, XRPL and Aptos have no public archive node, so their legs are read at head and written for the current day only. 27 September is the first day with the full registry read, and it carries about $2.7B on those chains that no earlier day has. A move across that date is coverage, not flow, and the headline chart marks it.

What this does not yet cover: 105 (protocol, chain) legs worth $646M on 8 August, mostly chains without an endpoint this project can reach. Their value is absent from the total, not estimated.

Where we have replayed supply directly from chain events, we use it to validate history, not to replace it. 1,913 points are chain-derived today, against 231,307 in total, so 0.827% of the series. That is a validation sample, and calling it coverage would be a lie.

Definitions

Some of these describe what we compute now. Some define a term for a capability that is not built yet. Which is which is marked, because a definition is not an implementation.

Why price is not the spine

Most tokenized value sits in treasury funds, which are NAV-priced and redeem at par. Their price chart is a flat line by construction, so a price-first dashboard would be a dashboard of nothing. The variables that actually move are supply, holder count, chain distribution and net flows. Price is one column, and it only carries signal for commodities and equities.

Toggleable assumptions

Each is a dbt variable, overridable per run without editing any SQL:

dbt build --vars '{"excluded_chains": ["Provenance"], "min_tvl_usd": 1000000}'
VariableDefaultEffect when changed
excluded_chainsnoneDrops named chains from every total, for example permissioned books
min_tvl_usd0Noise floor, removes dust positions from the headline

Every row of every published table carries the settings that produced it, which is what the table at the top of this page is reading.

Contract address confidence

Contract addresses are public data and we want them. What travels with each one is how strongly it is attested, because a wrong address does not produce obviously broken output. It produces confidently wrong output: a clean, plausible supply reading taken from the wrong contract.

ConfidenceObservationsDistinct addressesSources
verified 6 3 2
corroborated 68 34 2
sourced 60 53 2
conflicted 6 6 2

Currently quarantined

Where two sources name different addresses for the same asset and chain, neither is trusted. Disagreement is information, and publishing it is more honest than silently picking a winner.

AssetChainAddressSource
brickken Ethereum 0x0a638f07acc6969abf392bb009f216d22adea36d defillama
brickken ethereum 0xfc209eeba3d744aa741cc5c2a73ebf9c977b5f82 coingecko
propbase aptos 0x6dba1728c73363be1bdd4d504844c40fbb893e368ccbeff1d1bd83497dbc756d defillama
propbase aptos 0xe50684a338db732d8fb8a3ac71c4b8633878bd0193bca5de2ebc852a83b35099::propbase_coin::props coingecko
stobox Binance 0xa6422e3e219ee6d4c1b18895275fe43556fd50ed defillama
stobox binance-smart-chain 0xb0c4080a8fa7afa11a09473f3be14d44af3f8743 coingecko

Ingestion health

The dangerous failure for a data product is not a crash. It is a source quietly going stale while the site keeps rendering confident numbers built on inputs that stopped moving. So freshness is published, and a test fails the build if any asset above $100M goes stale.

StatusProtocolsValue
current 124 $4.57B
stale 41 $20.9M
missing 16 —

Known limitations