Measured

Every market, every cadence

40 equity/USDG pools on Robinhood Chain, 45,536 swaps, read straight from the chain with no key, no proxy, no vendor and no candle API.

median fee (bps of stake) 2.67 0.1s 1,059.5 looks 2.67 1s 672.5 looks 2.11 10s 336 looks 1.40 2m 91 looks 1.06 17m 11 looks 0.47 2.8h 2 looks 0.00 27.8h 2 looks

Median across 40 markets. The bar labelled 0.1s is a vault that crystallises every block; 27.8h is one that does it about daily. Same paths, same 20%.

19of 40 markets charged a holder who made nothing
22of 40 where the fee was larger than the holder’s entire gain
0.00bps: what Arete would have charged the median holder

How the scan works

Every price on this page is a Uniswap V3 Swap event, and its value is computed from the sqrtPriceX96 the event carries. There is no oracle in this repository and no vendor anywhere in it.

The census reads every Swap on the chain over 40,000 blocks — 1,125 pools traded in that window — then keeps the 40 busiest whose pair is an issuer equity against USDG. 82 pools were rejected, and the build fails if that number is zero: a filter that has stopped running looks exactly like a clean chain.

The equity test is anchored and bounded, not a substring. On a sibling chain a substring test admitted a token whose symbol was 9,575 characters and whose name was 34,090, and it laid out one card 25,198 pixels wide.

Three things this node does that look like data

  • An unpaced burst answers 429 and keeps answering 429. The pacer is why the scan finishes; concurrency is not.
  • eth_getLogs over a wide range answers log query timed out with code -32000, which is the code a revert uses. Read as an answer it is an empty range, which reads as “this market did not trade”.
  • A query matching more than 10,000 logs is refused outright. That is a refusal, not a throttle, and retrying it nine times gets nine refusals; the range is halved instead. It had to be halved 5 times, and the smallest chunk that answered was 1,000 blocks.
  • A browser cannot see the throttle at all. The rate limiter answers with access-control-allow-origin: *,* — it adds its own copy on top of the backend’s, and a duplicated value is a CORS violation — so Chrome discards the response and fetch rejects with the same bare TypeError an unplugged cable produces. Every live panel here therefore treats anything that is not a JSON-RPC error object as transient, and says so when the retries run out rather than showing a zero.

Historical state is not available on this node either — an eth_call more than a few thousand blocks back fails with metadata is not found — so a price series cannot be sampled by asking a pool what it cost. It has to be rebuilt from logs, which is why a path here is its swaps rather than a grid.

Every row

40 markets, 7 cadences

Fee in basis points of the depositor’s stake. The last column is what Arete charges the same holder over the same window.

MarketPool feeSwapsBlocksHeldCrest0.1s1s10s2m17m2.8h27.8hArete
RBLX 1% 759 342,815 +152.93 +230.04 45.9045.8345.7545.7544.7930.5530.58 30.58
RBLX 0.3% 705 248,503 +125.24 +147.64 29.4829.4829.4229.4027.6025.0325.04 25.04
GOOGL 0.05% 1,241 99,341 +26.88 +52.75 10.5410.5410.2910.2610.265.375.37 5.37
DELL 1% 1,600 260,145 −17.33 +40.91 8.178.178.178.148.040.000.00 0.00
GLD 0.05% 1,057 149,602 +33.20 +40.02 8.008.008.008.007.536.636.63 6.63
TSLA 0.05% 1,062 46,952 −0.47 +35.03 7.005.855.174.603.840.000.00 0.00
PLTR 0.3% 874 238,901 +26.39 +34.51 6.896.876.876.695.785.275.27 5.27
MU 0.3% 740 299,015 +18.95 +33.88 6.776.776.375.855.585.113.78 3.78
SPCX 0.05% 779 99,297 +18.02 +33.85 6.766.766.195.645.273.603.60 3.60
HIMS 0.3% 747 148,994 +29.95 +31.29 6.256.246.176.145.985.985.98 5.98
LULU 0.3% 1,572 99,499 +2.92 +28.16 5.635.635.455.413.660.580.58 0.58
QQQ 0.05% 872 1,798,492 −8.15 +26.40 5.274.401.341.300.460.050.00 0.00
NVDA 0.025% 1,041 195,132 −8.09 +21.46 4.294.292.702.312.181.480.00 0.00
TTWO 0.3% 732 345,220 −5.15 +19.36 3.873.873.873.873.662.030.00 0.00
LLY 0.05% 862 148,341 +3.26 +17.75 3.543.103.092.932.360.650.65 0.65
SGOV 0.015% 767 38,181 +15.38 +16.21 3.243.243.233.073.073.073.07 3.07
TSLA 0.05% 1,600 21,258 −17.38 +15.56 3.113.112.220.570.000.000.00 0.00
MSFT 0.3% 869 98,856 +2.90 +14.96 2.992.952.832.771.010.570.57 0.57
SLV 0.05% 922 198,772 −0.52 +14.73 2.942.942.942.941.300.000.00 0.00
IBM 0.3% 1,067 149,512 −1.27 +13.55 2.702.702.702.701.821.490.00 0.00
MSTR 1% 743 299,910 −144.87 +13.20 2.642.642.611.390.000.000.00 0.00
AAPL 0.05% 1,278 99,417 −11.27 +11.27 2.251.741.430.770.320.000.00 0.00
SGOV 0.05% 1,600 78,464 +9.01 +10.04 2.002.002.001.811.801.801.80 1.80
GME 1% 1,600 66,978 +2.56 +9.22 1.841.821.751.411.140.510.51 0.51
SPY 0.005% 1,600 38,853 −5.25 +8.55 1.701.701.030.870.870.000.00 0.00
SPY 0.01% 1,600 46,445 −2.09 +7.54 1.501.501.501.281.040.000.00 0.00
GLD 0.3% 840 99,791 +4.90 +5.56 1.111.111.111.101.080.970.97 0.97
GME 0.05% 1,422 49,881 +2.85 +5.34 1.061.061.061.060.770.560.56 0.56
COST 0.3% 931 148,533 +2.55 +5.35 1.061.061.061.060.790.510.51 0.51
SPCX 0.05% 1,600 18,435 −3.81 +4.62 0.920.920.920.680.560.000.00 0.00
SPY 0.05% 1,168 49,711 −2.99 +4.07 0.810.810.810.730.660.000.00 0.00
NVDA 0.011% 938 99,745 −18.94 +3.70 0.730.720.720.580.100.000.00 0.00
QQQ 0.04% 1,600 25,955 −8.70 +2.64 0.520.520.400.020.000.000.00 0.00
TSLA 0.3% 1,600 19,243 −1.38 +2.46 0.490.470.370.190.000.000.00 0.00
SGOV 0.3% 1,142 49,608 +2.18 +2.18 0.430.430.430.430.430.430.43 0.43
GOOGL 0.05% 1,600 40,212 −18.01 +0.79 0.150.150.130.000.000.000.00 0.00
NVDA 0.05% 1,600 22,450 −20.16 +0.07 0.010.010.000.000.000.000.00 0.00
QQQ 0.05% 1,600 13,157 −4.71 +0.00 0.000.000.000.000.000.000.00 0.00
BULL 1% 495 1,566,440 −478.05 +0.00 0.000.000.000.000.000.000.00 0.00
MSFT 0.05% 711 249,917 −24.58 +0.00 0.000.000.000.000.000.000.00 0.00

Does the real chain obey the theory?

Partly, and the site says which part. The direction is not in question: the identity makes it a theorem that looking more often can never charge less, and across 240 cadence pairs on real markets that holds, with 2 pairs dipping by at most 9.81 parts in ten thousand.

Those dips are not noise and they are not an error. The identity is exact in price space; the vault pays its fee by dilution, which is multiplicative, while the give-up bookkeeping is additive, and the two differ at second order — of order f times the gross move. Each dip is held against its own market’s bound rather than against a tolerance somebody chose: the worst is 9.81 parts in ten thousand against a predicted 30.58.

The shape is a different question. Fitting each market's ladder to the predicted 1 − β/(√(2/π)√n) curve gives a median R² of 0.385 across 35 markets, with 14% above 0.9. Real prices are not Brownian motion — a few hours of a tokenised equity is long flat stretches and discrete jumps — and nothing on this site depends on that fit holding. It is published because a page that only shows the fits that worked is not showing a measurement.

MarketFitted ceiling (bps)Points
GME1.110.9827
SPY1.510.9515
COST1.070.9397
SPCX6.730.9337
GOOGL11.160.9187
SPCX0.930.8975
IBM2.710.8666
GME1.690.8507
TTWO3.960.8306
RBLX48.710.8047
MU6.800.7887
LLY3.000.7357
LULU5.190.7297
SPY0.840.6855
MSFT2.630.6737
TSLA5.930.6185
NVDA3.320.4516
SPY1.390.3855
SLV2.800.3835
NVDA0.630.3505
TSLA0.410.3434
AAPL1.450.2425
TSLA2.460.2314
QQQ0.400.1804
MSTR2.430.1204
QQQ2.340.0716
PLTR7.32-0.0817
GLD8.88-2.6617
RBLX32.55-3.5757
GLD1.27-11.0817
SGOV2.24-16.9727
DELL8.65-50.7235
SGOV3.80-82.2907
HIMS7.14-123.5927
SGOV0.51-3.978590994166261e+307

Check it yourself

Re-run a market from the chain, now

This reads live Swap logs from Robinhood Chain in your browser, over a window that did not exist when this page was built, and runs the same js/crest.js the snapshot used. No key, no proxy, no server.