Onchain measurement

What it costs to get out of a tokenized stock

Weekend loan-to-value is a function of executable depth, not oracle freshness. A liquidation is an exit, not a valuation. Here is the depth, the cost of using it, and the oracle drift measured against both.

Recomputed
−127 bps

What is left of a 500 bps liquidation bonus on NVDAc once p99 oracle drift is paid. It is negative: the drift alone exceeds the bonus, so no clip clears at any size.

$790,000

Where the NVDAc book stops. Past this there is no more of the quote asset inside the range that was read, so the book caps capacity rather than the bonus doing it.

72of94

Latency windows of six hours or more that are not weekends, across the four tokens with a venue. The feed goes quiet on a Wednesday as readily as a Saturday.

Measured

When the feed is stale, and whether that is a weekend

The reading most people arrive with is that a 24/5 oracle is a weekend problem: markets shut, the feed stops, nothing can be liquidated until Monday. It is the obvious inference. It is not what the windows say.

Every completed window of six hours or more, split by when it fell. Six hours is the bar because a US regular session is six and a half, so it is the shortest gap that cannot be explained by a quiet afternoon.

Feed Windows 6h+ Weekend Not a weekend Of those, in a live session
AAPLc 26 5 21 16
GOOGLc 25 6 19 16
METAc 25 6 19 11
NVDAc 18 5 13 8

72 of 94 windows across these four are not weekends, and 51 of those 72 overlapped a trading session that was open at the time. Across all 13 feeds, including the nine with no pool, it is 141 of 199.

That distinction decides what a fix would have to be. A weekend problem is fixed by extending hours. A deviation trigger with no off-hours heartbeat is not, because longer sessions do not add a heartbeat.

The thin and clipped flags are deliberately not applied here. Both qualify a divergence, which is measured against a venue. This counts latency, which is a fact about the feed alone, so filtering on the state of the pool beside it would answer a different question.

Measured

Executable depth, by band

Walked from each pool's initialised ticks: every tick in the band is a step change in liquidity, and each sub-range is integrated at its own. Not total value locked, not reported volume. Each figure is the binding side, whichever half of the band runs out first.

Pool ±1% ±2% ±5% As of
AAPLc $345,490 $416,160 $472,449
GOOGLc $288,857 $357,068 $442,302
METAc $292,105 $327,396 $362,269
NVDAc $268,552 $445,933 $572,208

Every book roughly doubles between the first two bands and then adds very little across the next three percent. Liquidity is placed close in and thins out fast, so a clip large enough to matter leaves the dense part of the book almost immediately.

Measured

What an exit costs

The price impact of selling that much of the token, simulated against the tick liquidity actually read, with the pool fee included. This is the number a liquidation bonus has to cover.

Pool $100,000 $250,000 $500,000 $1,000,000 $2,000,000
AAPLc 24 bps 44 bps 79 bps beyond the read beyond the read
GOOGLc 28 bps 47 bps 104 bps beyond the read beyond the read
METAc 27 bps 52 bps beyond the read beyond the read beyond the read
NVDAc 33 bps 58 bps 109 bps beyond the read beyond the read

Beyond the read means the simulated sale walked the price down 26% and still had not raised the amount asked for. Past that the cost is withheld rather than extrapolated: an unread tick and a tick with nothing on it look identical to the walk, and guessing between them would report a thin book as a deep one.

Measured

How far the published value drifts before it is corrected

Measured, not taken from the documented update threshold. That trigger fires on the underlying equity price, so off-hours there is no print to deviate from and it does not fire at all.

Each figure is how far an oracle feed moved when it resumed after a latency window: the distance the market had already travelled, revealed at the moment the feed agreed. A liquidator is paid in collateral valued at the published number and sells at the market number, so this distance comes out of the bonus before the book is reached.

Feed Windows p50 p95 p99
AAPLc 27 9 bps 67 bps 465 bps
GOOGLc 26 15 bps 510 bps 746 bps
METAc 44 9 bps 86 bps 88 bps
NVDAc 46 14 bps 128 bps 627 bps

The counts are small and the percentiles inherit that. At these sample sizes a p99 is the largest value seen rather than a p99, which is why the denominator sits in the table instead of in a footnote.

Model

The largest position that could be exited profitably

A liquidation pays while the bonus exceeds the cost of getting out:

worth doing while bonus > price impact + gas + oracle drift

For NVDAc, against the book above and the drift band beside it.

The liquidation bonus is the discount a liquidator takes for clearing somebody else's bad position: they take on the collateral below its marked value and keep the difference. Every lending market sets its own, and it is normally readable from that market's contract. None has listed these tokens, so there is no number to read and no honest way to pick one. The table runs a range instead. Read the row matching the bonus you would set.

Bonus Oracle drift Budget for impact Largest clip Absorbed in a window
500 bps p50 / 14 bps 486 bps $793,502 $793,502
500 bps p95 / 128 bps 372 bps $793,502 $793,502
500 bps p99 / 627 bps −127 bps nothing clears
750 bps p50 / 14 bps 736 bps $793,502 $793,502
750 bps p95 / 128 bps 622 bps $793,502 $793,502
750 bps p99 / 627 bps 123 bps $530,288 $530,288
1000 bps p50 / 14 bps 986 bps $793,502 $793,502
1000 bps p95 / 128 bps 872 bps $793,502 $793,502
1000 bps p99 / 627 bps 373 bps $793,502 $793,502
1500 bps p50 / 14 bps 1486 bps $793,502 $793,502
1500 bps p95 / 128 bps 1372 bps $793,502 $793,502
1500 bps p99 / 627 bps 873 bps $793,502 $793,502

Two things read off this table. The clip size stops growing well before the bonus runs out, because the book caps capacity rather than the bonus doing it. And the response window absorbs one clip, not several: each clip starts where the last left the price, so they are charged cumulatively rather than multiplied.

Model

The question in the other direction

A prospective lender does not ask how deep the pool is. They ask how large a market this could carry, and what would have to change. Below: the largest Friday to Monday gap a market of a given size could take before what must be liquidated exceeds what NVDAc absorbs today.

Collateral 50% LTV 60% LTV 70% LTV 75% LTV 80% LTV
$5,000,000 82% 72% 62% 57% 52%
$25,000,000 56% 46% 36% 31% 26%
$100,000,000 52% 42% 32% 27% 22%

Read down a column: the same book carries a smaller shock as the market grows. Read across a row: a lower loan-to-value buys headroom that depth does not have to provide. Capacity used is $793,502, from the 500 bps and p95 row above, at a 50% close factor.

Which reframes the exercise

Nothing in that table goes underwater at a plausible weekend gap. A position at 80% loan-to-value has 20% of headroom, and the widest gap in the range above is smaller than that. So the weekend gap is not what binds. What binds is whether positions already sitting close to their threshold can be exited at all, which is the capacity table above rather than this one.

Measured

A weaker second look at the weekend

The depth series starts when it was built, so its first weekend is its only weekend. Every stored swap also carries the active liquidity at the traded tick, and those reach back across earlier weekends.

Pool Weekday trades Weekend trades Weekend median vs weekday
AAPLc 34,568 14,105 1.5x
GOOGLc 76,266 19,645 7.8x
METAc 45,479 5,009 3.1x
NVDAc 116,951 26,248 2.4x

This is not executable depth. Active liquidity is what is live inside the current tick range only, and it is weighted by the trades that happened rather than by time. Far more trades happen on weekdays, so the two columns describe different populations and cannot be compared with the depth table above. Offered as a reason to take the direct measurement, not as a finding.

The extreme ratios are an artefact of the denominator rather than a deep weekend book. A median near zero means more than half that pool's weekday trades happened while the price sat in a tick range with almost nothing in it, which says something about weekdays rather than about weekends. Read the direction, not the multiple.

Assumptions

What this assumes, and where it would be wrong

Everything above rests on choices that are defensible and are not the only ones available. They are listed here rather than left for a reader to find, because a model whose weak points have to be discovered is a model nobody can use.

One venue

Depth is the Aerodrome Slipstream pool and nothing else. A liquidator could route to another Base venue, bridge out, or hedge on a centralised venue or a perp. Those routes exist and are not measured here. They are also not atomic: they carry inventory risk across exactly the interval in which the position is underwater, which is the interval this is about. Read these figures as the atomic onchain exit, and therefore as a floor rather than a ceiling.

The book that was actually read

The walk fetches the initialised ticks around the current price, which here spans a 26% fall. An exhausted result means the sale ran the price down that far without filling. It is not a claim that nothing exists beyond it.

Oracle drift charged as a cost, every time

In practice the drift is two-sided: about as often the stale price favours the liquidator. A liquidator who prices it will decline the adverse case, and a declined liquidation is exactly the outcome this is about, so the adverse side is the one that decides feasibility. Anyone modelling expected profit rather than whether a position clears should use the signed distribution instead.

Every borrower at the same loan-to-value

The survivable-gap table treats a whole market as sitting at the stated loan-to-value. Real books hold a distribution, so the true answer depends on how much sits near the threshold, which cannot be read from outside. The single-LTV reading is the conservative one at the top of the range and the optimistic one below it.

Assumed parameters, stated

Close factor 50%, 3 clips inside the response window, and gas charged against a $100,000 reference clip. None of these is readable anywhere, because no market has set them.

Small samples

Roughly three weeks of feed history and days of depth history. The percentiles inherit that, and every table carries its own denominator so the weight of each figure is visible where it is quoted.

What would change the conclusion

If a liquidator can reliably exit off this pool at size, the capacity figures are a floor and the real number is higher. And if the oracle gains an off-hours heartbeat, the drift distribution changes and most of this stops applying. That second one is the question worth putting to the people who publish the feed.

Method

How every number here was produced

Depth is walked from the pool's initialised ticks, each sub-range integrated at its own liquidity. Price impact is the same walk run backwards, with the pool fee charged on the way in. A band or a clip reaching past the ticks actually read is refused rather than answered.

Oracle drift comes from how far each feed moved when it resumed after a latency window. No market calendar, session label or time of day enters it, so it qualifies latency independently rather than restating it.

The market parameters are assumed, and every table runs a range of them. No lending market has listed these tokens, so there is no loan-to-value, liquidation bonus or close factor to read from anywhere. Taking a comparable market's numbers and presenting them as these assets' would be publishing a figure with no source, so the reader supplies their own by reading the row that matches it.

Arithmetic is integer throughout. Everything is reproducible from public chain state on Base. The method is at /methodology.

Withheld

Two numbers deliberately not published

The emissions sensitivity. The figure that would turn a gauge vote into a return calculation is the change in capacity per unit of emissions. One weekend cannot support an emissions-to-depth elasticity. Fitting one would produce the only number here that could not be defended, in front of the readers most able to check it. What is published instead is the change in capacity per unit of depth, which falls out of the book exactly, with the elasticity left as a stated reader input.

The weekend gap distribution. The 99th-percentile Friday close to Monday open move is computed offline from equity history and is not yet done. Until it is, it renders as and the gap rows above are labelled a sensitivity rather than a probability.