Hubble's First Stress Test (May 2022)

In this update, we'll share details about what happened and what the Hubble team learned from the experience.

Hubble recently experienced its first major stress test. Overall, the protocol operated as intended despite a few minor hiccups, and USDH remained fully collateralized and pegged.

USDH's price chart during the crash.

In this update, we'll share details about what happened during that time and what the Hubble team learned from the experience.

Join us in Hubble's Twitter Spaces on May 19th at 5 PM UTC to find out more.

The May 2022 Crash Brought Down Prices Across the Board

Crypto market prices fell precipitously between the 8th of May and the 12th as UST broke its peg, and the price of LUNA began slipping towards zero.

LUNA falls to less than a thousandth of a penny.

A Top 10 token had entered a death spiral. Rather quickly, contagion brought down nearly every crypto asset on the market.

BTC fell below $27,000.
SOL breached $40.

BTC and mSOL, Marinade's liquid staking token pegged to SOL, made up the lion's share of the collateral held on Hubble. They were also affected by the market situation.

Consequently, when the price of BTC and SOL began to plummet, users began repaying their loans, and the system began liquidating positions that exceeded their maximum LTV ratios.

Chart showing Hubble instructions for repaying or borrowing loans.

Liquidations Increased as Prices Continued Dropping

As demonstrated in the charts below, more users were liquidated during this period than at any other time in Hubble's three-month history. About 77% of all Hubble liquidations occurred this May.

Accounts Liquidated

Liquidations since Hubble's launch.
Liquidations day by day during early May.

The dollar amount for liquidations also rose to all-time-highs. In total, Hubble liquidated $1.7 million worth of debt over a few days.

Liquidations Dollar Amount

Dollar amount liquidated over Hubble's history.
Daily dollar amounts for liquidations on Hubble.

The Stability Pool Worked as Intended

Around 10% of liquidations were distributed to Stability Pool (now Stability Vault) providers as a reward for providing the USDH to guarantee users' debts.

Using the bottom as a yardstick, this means that users who provided USDH in exchange for liquidation rewards earned around $170,000 in liquidated assets.

During this event, the amount of USDH in the Stability Pool was reduced to half the amount held in deposits at the start of the month. On May 1st, there were 6.4 million USDH deposited in the Stability pool, and on May 17th, there were 3 million.

Factoring in the USDH that was burned for liquidations, we can surmise that 1.8 million USDH were withdrawn from the Stability Pool to repay loans.

Chart showing how much USDH was burned during loan repayments.

The Stability Pool provided a way for users to obtain USDH to repay their loans without resorting to the market. This may have reduced upward pressure on USDH's peg, since users were not draining liquidity pools for USDH all at once.  

Liquidations Began Failing When Solana's Performance Declined

Degraded network performance was an issue for Solana during this time. Poor network throughput translated into invalid price feeds from our oracle, Pyth Network.

Message showing a transaction has failed due to an invalid price feed.

As a result, liquidations weren't going through, and there was a risk that some loans were close to being liquidated as bad debt.

Several positions crept above their maximum LTV ratio for borrowing.

This snapshot, taken every hour, shows one account with an LTV ratio that reached 110%.

Hubble's LTV histogram distribution at one point.

Thankfully, the market bounced when we managed to liquidate this loan, and by then it was overcollateralized. According to chain data, 100% of accounts liquidated were overcollateralized.

Measures We Took and Lessons We Learned

Hubble has done two things that will reduce the Solana performance/oracle situation affecting normal operations in the future:

  • We are now more generous about Pyth price validation (less strict about all prices).
  • We removed the need to fetch all prices at once, which was an artifact of Recovery Mode.

We learned some valuable lessons that will help make sure liquidations run through more clearly next crash, and we also learned a few things about our LTV ratios:

  • The 90% LTV is still OK if we run liquidations via the Stability Pool.
  • The 75% LTV for new loans is too conservative, and we can safely increase this liquidation threshold.

If you'd like to hear more from Marius, Hubble's lead developer, about what happened and what we've learned, join our  Twitter Spaces this Thursday, May 19th, at 5 PM UTC.

Keep in Touch

Website | Twitter | Telegram | Discord | Email | Reddit

You've successfully subscribed to Hubble Blog
Great! Next, complete checkout to get full access to all premium content.
Error! Could not sign up. invalid link.
Welcome back! You've successfully signed in.
Error! Could not sign in. Please try again.
Success! Your account is fully activated, you now have access to all content.
Error! Stripe checkout failed.
Success! Your billing info is updated.
Error! Billing info update failed.