Skip to content
Market-Time Report #1 · generated 2026-09-21 00:53 UTC

What happened to executable liquidity while the underlying markets were shut

2026-09-19 06:37 UTC to 2026-09-21 00:52 UTC · 42.25 h · 35,130 readings across 15 pools · largest hole 03:16:22

7 of 10Asset pools that lost in-range liquidity
-49.12%Largest fall · MIXUx
35,130Readings over 42.25 h
New York after hours · Hong Kong closed
New York: after hours end in 00:00 UTC · 20:00 EDT
New York
Hong Kong

Liquidity change by pool

In-range liquidity at the last reading of the window against the first. The asset pools first, then the route legs a sale passes through on its way to USDG.

Route legs

  • 0x6E…F6D5-52.42%
  • 0x91…2663-0.48%
  • 0xf0…cC0e-0.05%
  • 0xFD…00ab0.00%
  • 0xbB…0d400.00%

Window against the sessions

New York
Closed for the whole window
Hong Kong
Closed for the whole window
Record
Light is a regular session, grey the extended hours. The record lane is solid where the collector read every minute; hatched where it did not: 16:42 to 19:59 UTC on 20 Sep (196 min).

Neither underlying market held a regular session inside this window, so this report cannot compare open against closed. It says so rather than implying it.

Findings

  1. In-range liquidity did not hold still while the underlying markets were closed: 7 of 10 asset pools ended the window with less in-range liquidity than they started it.

    Largest fall MIXUx -49.12%, largest rise SLVx 4.94%, over 35,130 readings.

  2. A capacity number fixed at Friday's close would have been wrong by the size of those moves for the whole weekend.

    This is the arithmetic consequence of the row above, not a separate measurement: debtCeiling is a fraction of C(1%), and C(1%) is computed from exactly this pool state.

What this report does not show

  • The window observed so far is entirely outside the underlying markets' regular sessions. It therefore measures how liquidity behaves while they are shut, and cannot yet compare that with how it behaves while they are open. That comparison needs a session in the record and will be added once one is.
  • In-range liquidity L is not executable depth in dollars. Kerb computes C(i) by walking ticks, which uses more of the stored state than L alone; L is used here because it is a single stored number per reading and needs no re-derivation.
  • The record has a hole. It is reported in the window above rather than interpolated across.

Every 60 seconds the collector reads slot0, liquidity, tickSpacing, fee and the initialised ticks spanning at least +/-60% around spot from each pool on X Layer, and appends the reading with its block, a hash of the payload and the payload itself. The figures below are those stored readings. `liquidity` is the in-range liquidity L at the observed tick, the quantity a swap consumes first; it is not a dollar depth, and it is not converted into one here.

Sources

xstocks:price-data
6,889 observations, 2026-09-19 06:37 UTC to 2026-09-21 00:52 UTC
yahoo:chart:0388.HK
4,659 observations, 2026-09-19 06:44 UTC to 2026-09-21 00:52 UTC
yahoo:chart:0625.HK
4,660 observations, 2026-09-19 06:44 UTC to 2026-09-21 00:52 UTC
yahoo:chart:1024.HK
4,660 observations, 2026-09-19 06:44 UTC to 2026-09-21 00:52 UTC
yahoo:chart:2097.HK
4,659 observations, 2026-09-19 06:44 UTC to 2026-09-21 00:52 UTC
yahoo:chart:BMNR
4,659 observations, 2026-09-19 06:44 UTC to 2026-09-21 00:52 UTC
yahoo:chart:BRK-B
4,659 observations, 2026-09-19 06:44 UTC to 2026-09-21 00:52 UTC
yahoo:chart:COIN
4,660 observations, 2026-09-19 06:44 UTC to 2026-09-21 00:52 UTC
yahoo:chart:HKD=X
4,659 observations, 2026-09-19 06:44 UTC to 2026-09-21 00:52 UTC
yahoo:chart:ICE
4,660 observations, 2026-09-19 06:44 UTC to 2026-09-21 00:52 UTC
yahoo:chart:KO
4,661 observations, 2026-09-19 06:44 UTC to 2026-09-21 00:52 UTC
yahoo:chart:SLV
4,660 observations, 2026-09-19 06:44 UTC to 2026-09-21 00:52 UTC

Appendix: pool by pool

In-range liquidity L, protocol units (the pool's uint128 divided by 1018). L is not dollars; C(1%) is the dollar measure.

PoolL at startL at endChangeL lowL highReadingsAddress
KOx0.1840.163-11.80%0.1630.1842,3420x273D…3114
HKEXCx0.2060.212+3.14%0.0930.2512,3420x293A…7Ed4
BRK.Bx0.1270.078-38.13%0.0700.1312,3420x34Fa…A507
COINx1,661.3471,483.910-10.68%1,172.6651,661.3472,3420x7013…5edF
ICEx0.0620.051-18.60%0.0430.1142,3420x8D01…736f
MIXUx0.2320.118-49.12%0.0550.2322,3420x94D6…c3b8
KUAIx0.6650.467-29.70%0.4670.6652,3420x9D5d…a0f2
SHEINx0.3560.362+1.56%0.3331.4272,3420xF1ef…4497
BMNRx7,890.2187,734.373-1.97%6,913.3667,897.1622,3420xcd5a…729b
SLVx0.0550.057+4.94%0.0160.0582,3420xd510…f4a6
Route leg0.0790.037-52.42%0.0370.3922,3420x6E18…F6D5
Route leg0.0160.016-0.48%0.0160.0162,3420x91db…2663
Route leg0.0000.0000.00%0.0000.0002,3420xFD69…00ab
Route leg0.0010.0010.00%0.0010.0012,3420xbB9a…0d40
Route leg0.0000.000-0.05%0.0000.0002,3420xf055…cC0e

Appendix: executable depth in dollars · added 22 Sep

Executable depth C(1%) in USDG near the window's first and last reading (each row says the exact moment: the first instant every engine input existed), recomputed from the stored pool state with the engine's tick walk. Added after publication; the report's original figures are unchanged.

AssetC(1%) near start, USDGAtC(1%) at end, USDGAtChange
BRK.Bx$27,663.132026-09-19 06:37 UTC$17,074.202026-09-21 00:52 UTC-38.27%
HKEXCx$12,807.982026-09-19 06:47 UTC$14,108.862026-09-21 00:52 UTC+10.15%
COINx$8,446.412026-09-19 06:47 UTC$6,790.802026-09-21 00:52 UTC-19.60%
KUAIx$12,599.832026-09-19 06:47 UTC$8,740.412026-09-21 00:52 UTC-30.63%
ICEx$7,275.242026-09-19 06:42 UTC$5,997.282026-09-21 00:52 UTC-17.56%
MIXUx$11,071.842026-09-19 06:47 UTC$5,653.212026-09-21 00:52 UTC-48.94%
KOx$16,864.172026-09-19 06:47 UTC$14,876.132026-09-21 00:52 UTC-11.78%
SHEINx$7,531.852026-09-19 06:47 UTC$7,437.652026-09-21 00:52 UTC-1.25%
BMNRx$12,450.362026-09-19 06:42 UTC$9,302.912026-09-21 00:52 UTC-25.27%
SLVx$4,063.172026-09-19 06:47 UTC$4,262.862026-09-21 00:52 UTC+4.91%
shell
pnpm --filter @kerb/engine exec tsx scripts/c1-appendix.ts 1

Reproduce it

pnpm --filter @kerb/engine market-time-report regenerates this file from the observation store. Every row is a SELECT over append-only tables whose UPDATE, DELETE and TRUNCATE are rejected by database triggers.

The hourly record behind every Market-Time Report, gaps included: Download the dataset (CSV) · JSON.

shell
pnpm --filter @kerb/engine market-time-report

Download the report JSON The live row counts behind it