A stablecoin depeg shows up on-chain in two places: the price and the shape of the pools that trade the coin. The shape is the balance between the coins in a pool plus the liquidity left on each side. It is public at every block. Sometimes it moves before the price. On 10 March 2023 the USDT share of Curve’s 3pool fell from 36.8% at 12:00 UTC to 10.6% at 22:00 UTC while the pool’s own quote stayed within about 0.2% of par. One research paper puts USDC below 99 cents at about 02:00 UTC the next morning.
Sometimes a drop starts on one venue and the pools show whether it spread. On 10 October 2025 USDe fell to around 65 cents on one centralized exchange. The Curve pool measured for this article stayed within about half a percent of par.
No pool signal always leads. Below are three dated episodes, what the pool readings were and where each signal fails.
What a depeg is
A depeg is a stablecoin trading meaningfully away from its target value, below it as a discount or above it as a premium. It is a process more than an event. The cause depends on the design. The types of stablecoins each have their own pressure point. What the cases share is that holders who want out sell into whatever market is open. On-chain that market is a pool.
How a stable pool shows stress
A pool for coins meant to trade at the same price, such as Curve’s, holds a balance of each coin and quotes swaps from those balances. Curve’s curve joins a flat section around the peg, which keeps trades cheap, to a steeper one that takes over as balances drift. An amplification setting decides how far a pool can tilt before its price leaves 1:1. In Curve’s own worked example a balanced pool takes in a swap equal to half of one side and its price moves to 1.002.
That flatness is why the shape can say more than the quote. A pool can tilt hard while still quoting close to par.
Arbitrage pulls a pool back: when the quote drifts off par, traders swap the other way and restore the balance. In Curve pools that use a dynamic fee, a swap that rebalances also pays less than one that adds to the imbalance. When selling outweighs that pull, the tilt stays.
Three readings are worth taking from a pool: the share of each coin, the total balances and the pool’s own quote for a swap of fixed size. The quote is not a market price, because it includes slippage and fees. Reading pool state at a given block is also the kind of measurement a DEX-native price feed is built on.
USDC in March 2023: the shape moved before the price
Silicon Valley Bank was closed on 10 March 2023, according to the FDIC. Circle said that about 8% of the USDC reserve had been held at that bank and that USDC remained redeemable 1:1. USDC traded below 90 cents on 11 March, as The Block reported. A preprint by Cintra and Holloway used oracle prices and puts USDC below 99 cents at about 02:00 UTC that morning.
Curve’s 3pool holds DAI, USDC and USDT. We read its balances at archive blocks near each time below, with the pool’s quote for swapping 10,000 USDC into USDT:
| Time (UTC) | USDT share of pool | Quote for 10,000 USDC |
|---|---|---|
| 10 Mar, 12:00 | 36.8% | 9,999.75 USDT |
| 10 Mar, 20:00 | 26.3% | 9,997.11 USDT |
| 10 Mar, 22:00 | 10.6% | 9,977.87 USDT |
| 11 Mar, 02:00 | 3.1% | 9,748.06 USDT |
| 11 Mar, 06:00 | 1.8% | 9,297.54 USDT |
At 22:00 the quote was still within about 0.2% of par. Four hours later the same swap returned about 2.5% less than its size. By 06:00 it returned about 7% less. Total balances fell too: at 12:00 on 11 March the pool held more than a quarter less than a day earlier. Liquidity left as well as moved.
The mix kept shifting. At 12:00 on 11 March it was 88.4% USDC and 8.9% DAI. The Block reported DAI trading below 90 cents that weekend as well. By midnight on 12 March the pool was roughly half USDC and half DAI with USDT at 2.4%. On 15 March Circle said it had cleared substantially all of the backlog of minting and redemption requests.
How much warning did that give? The preprint reports that its change-point model, trained on 2022 UST data, flagged the 3pool on 10 March, hours before USDC fell below 99 cents. Its authors write that the model picks up changes in volume, profit and loss and pool composition before the wider market prices a depeg.
Two limits sit next to that result. The paper was sponsored by Llama Risk and the Curve Research team. It is also a preprint. It says its models were not accurate advance indicators in some pools with less liquidity, were sensitive to the data they were trained on and rest on a handful of depegs.
UST in May 2022: price and pool moved together
Jump Crypto’s timeline puts UST’s drift from the peg at 15:00 GMT on 7 May 2022. The pool read here is the UST/3CRV pool on Curve, a metapool built on the 3pool’s token. Its UST share was 53.9% at 00:00 UTC, 57.0% at 15:00 and 57.5% at 18:00. The tilt was modest when the price began to move.
Jump describes a sudden acceleration of the imbalance after 18:00 GMT. Our readings reach 67.3% at 21:30. Jump’s log then records large liquidity withdrawals at 21:44 and 22:52 GMT. At 21:57 it records a swap of UST for USDC that it calls the largest swap in that pool ever.
Curve’s own newsletter of 9 May described the pool as ranging between 60% and 70% UST. It said the peg held above $0.99 almost entirely, “at a cost of billions of dollarcoins.” By 00:00 UTC on 10 May the UST share was 95.6%.
Here the pool did not lead the price: both began to move in the same afternoon. The balances added what the quote did not show, a pool that kept quoting near par while it filled with one coin.
USDe in October 2025: the pools showed a local drop
On 10 October 2025 crypto fell sharply. 21Shares put Bitcoin down 13% and Ethereum down more than 16% in a day. USDe fell to around 65 cents on the order book of one centralized exchange. 21Shares wrote that the drop was not reflected on-chain, that USDe held far closer to one dollar on Curve and through the issuer’s mint and redeem path. The dislocation, it wrote, resolved within about 40 minutes on that exchange.
We read one Curve USDe/USDC pool at 10 to 30 minute intervals. The table shows a selection:
| Time (UTC) | USDe share of pool | Quote for 10,000 USDe |
|---|---|---|
| 10 Oct, 21:36 | 44.8% | 10,001.61 USDC |
| 10 Oct, 22:15 | 43.7% | 10,002.20 USDC |
| 10 Oct, 22:45 | 75.1% | 9,976.26 USDC |
| 10 Oct, 23:30 | 59.0% | 9,994.12 USDC |
| 11 Oct, 00:00 | 47.6% | 10,000.15 USDC |
The share was still near its earlier mix at 22:15. It jumped to 75.1% at 22:45 and eased back to 47.6% by midnight. In these readings the quote for selling 10,000 USDe never fell more than about 0.25% below par. A block-by-block scan of the same hours found a low of about 0.44% below par.
So in this episode the pool’s shape did not signal the drop in advance. The drop was on the exchange book. The pool tilted later and briefly while its quote stayed near par. For a monitor that is still a result: a low print on one venue, with pools that hold near par, reads as local stress. This is one pool. Spikes between readings are not seen.
What a monitor can take from three cases
In March 2023 the shape moved hours before the price broke. In May 2022 balance and price moved together. In October 2025 the price broke on one venue and the pool showed it did not spread. The shape of liquidity answers questions that price alone does not: which side is draining, whether a break is local, how much of a peg a pool is holding. The price answers what holders are paying right now. A monitor can read both. It can also read stablecoins against each other. The dollar cross board prices one stablecoin in another with no dollar conversion in between. The stablecoin price hub lists the dollar rates. The pages for USDC/USD and USDe/USD carry each rate with the block time it was read at.
None of this predicts a depeg. A tilt can reverse, as the USDe pool’s did within two hours. A signal that worked in one pool design may not work in another. Three episodes do not make a rule. For where a venue’s price and a pool’s price part ways, see CEX vs DEX pricing.
Reading the pools yourself
The readings above are eth_call requests against archive state at the block nearest each time. The pools, on Ethereum mainnet:
3pool
0xbEbc44782C7dB0a1A60Cb6fe97d0b483032FF1C7
UST/3CRV pool
0xCEAF7747579696A2F0bb206a14210e3c9e6fB269
USDe/USDC pool
0x02950460E2b9529D0E00284A5fA2d7bDF3fA4d72
Two calls do the work. balances(i) returns the balance of coin i. get_dy(i, j, dx) returns the pool’s quote for swapping dx of coin i into coin j. On the 3pool, balances(3) reverts, which confirms the three-coin range.
Sources
- FDIC, “FDIC Creates a Deposit Insurance National Bank of Santa Clara to Protect Insured Depositors of Silicon Valley Bank, Santa Clara, California”
- Circle, “$3.3 Billion of USDC Reserve Risk Removed, Dollar De-peg Closes”
- Circle, “March 15, 2023 | Update on USDC operations”
- The Block, “USDC remains at about $0.90 following Circle’s disclosure of funds at SVB”
- Cintra and Holloway, “Detecting Depegs: Towards Safer Passive Liquidity Provision on Curve Finance”, arXiv:2306.10612
- Jump Crypto, “The Depegging of UST”
- Curve, “May 9, 2022: Weekend of Terra”
- Curve Knowledge Hub, “Understanding Stableswap”
- 21Shares research, 20 October 2025, on USDe on-chain stability