Skip to content
Blotter

Start here

The Monday problem

A 24/7 token priced by a 24/5 oracle, and why liquidations arrive all at once.

Stock Tokens trade every hour of every day. The price that lending markets use to judge them does not. That mismatch turns ordinary liquidations into a synchronized event, and the synchronized event into a cascade.

A 24/7 token on a 24/5 oracle

A Stock Token can be transferred, traded and posted as collateral at any time. Its reference price comes from an oracle that follows the underlying stock market. That market runs five days a week. The US regular session is 9:30 to 16:00 Eastern Time, Monday to Friday, and it is closed on exchange holidays.

From Friday's close until the next open, the feed has nothing new to report and keeps showing the last price. The token still changes hands on-chain and news still arrives, but the number that lending markets read does not move.

Why nothing is liquidatable during the freeze

A loan becomes liquidatable when its debt, divided by the oracle value of its collateral, exceeds the market's liquidation loan-to-value (LLTV). With a frozen price, the denominator is frozen. Apart from slow interest accrual, no loan crosses the threshold, whatever has happened in the world since Friday. Risk accumulates, but the system cannot see it.

This is not a bug. A feed that derived weekend prices from thin on-chain trading would be easy to manipulate. Freezing is the conservative choice. It moves all of the adjustment to one moment.

The Monday print

At 9:30 Eastern Time on Monday, the underlying market opens and the feed publishes its first new price. This documentation calls it the print. If the stock gaps down, every loan that the gap pushes over its LLTV becomes liquidatable in the same block.

Three things are then true at once:

  • Every lending market liquidates at the same time. They read the same feed, so their loans go under water together.
  • Every liquidator does the same trade. Repay the debt, seize the Stock Token, sell it for USDG.
  • Every sale lands in the same place. On-chain liquidity for a Stock Token sits in a few AMMs, which are shallow compared with the underlying stock market.
The liquidation cascadeThe oracle prints the gap. Loans cross the liquidation threshold. Liquidators seize collateral and sell it in the same shallow AMM. The on-chain price sags, which pushes more loans across the threshold, and the loop repeats.Monday 9:30 printoracle jumps to the openLoans cross the LLTVon every market, same blockLiquidators seizecollateral + bonusEveryone sells into the same AMMshallow pool, large price impactOn-chain price sagsbelow the oracle pricemore loans go under waterwave n + 1the loop ends when a re-mark liquidates nobody
One print, many liquidations, one shallow AMM. Each wave of sales pushes the on-chain price down and sets up the next wave.

Shallow pools and price impact

In a constant-product AMM, the price moved by a sale depends only on the size of the sale relative to the reserve. Selling an amount equal to a fraction q of the Stock Token reserve moves the price as follows.

x · y = kq = tokens sold ÷ token reserveprice after = price before ÷ (1 + q)²impact = 1 − 1 ÷ (1 + q)²average execution price = price before ÷ (1 + q)
Constant-product price impact of selling q of the reserve

For small sales the impact is roughly twice q. A sale that is small for the stock market can be large for the AMM. When many liquidators sell within minutes, q is the sum of their sales, because arbitrage has not yet refilled the AMM.

The feedback loop

The falling AMM price feeds back into lending markets through two channels. Which one dominates depends on how each market reads its price.

Where the price reference is sensitive to on-chain trading, the sag marks more loans down. They become liquidatable, their collateral is sold into the same AMM, and the price falls further. This is the cascade in its direct form.

Where the oracle tracks only the underlying market, the damage takes a second form, present in every design: a backlog.

Why atomic liquidators stall

Most liquidators are atomic. They repay, seize and sell inside one transaction, and send it only if the sale covers the debt repaid. The bonus is their whole margin. Once earlier sales have pushed the AMM price below the oracle price divided by one plus the bonus, the next liquidation loses money and nobody sends it.

profitable while: AMM price ≥ oracle price ÷ (1 + bonus)cumulative capacity per wave: q ≤ √(1 + bonus) − 1
When atomic liquidation stops being profitable

Liquidatable loans then wait. Arbitrage brings the AMM back toward the oracle price, a new wave becomes profitable, and the AMM is pushed down again. While loans wait, the underlying price can keep moving. A loan that could have been closed with collateral to spare may be closed later with less collateral than debt. The difference is bad debt for lenders.

Why more liquidators does not fix it

Adding liquidators adds competition for the same trade. It does not add depth to the AMM. Ten liquidators selling into one AMM hit the same curve as one liquidator selling ten times as much. The constraint is not the number of bots. It is that all of them must sell immediately, in the same place, because none holds capital that can wait.

Smaller versions of the same problem

The weekend is the largest gap, not the only one.

  • Weekday overnight gaps. Between one close and the next open, the feed either does not update or reflects thinner trading, depending on the feed. Company results are usually published outside the regular session, and the next open can gap.
  • Single-stock halts. Trading in one stock can be halted for news or volatility. Its feed freezes, then reprints when trading resumes.
  • Market-wide circuit breakers. A large index decline pauses the whole market. Every feed freezes and reprints together.

Each has the same shape: a freeze, a print, a burst of liquidations, a thin exit.

What would actually help

The missing piece is a liquidator that does not need to sell at the print: one that repays debt with its own capital, holds the collateral, and sells later, while the underlying market is open and arbitrage anchors on-chain prices. That is the role of the Blotter Pool. Mechanism describes how it works, and Risks what holding that collateral costs. The simulator replays the same open with and without the pool.