Iron Finance Post-Mortem 17 June 2021
IMPORTANT: Redeeming IRON for USDC will resume at 5PM UTC at https://polygon.iron.finance/bank?action=redeem&pool
We never thought it would happen, but it just did. We just experienced the world’s first large-scale crypto bank run.
Around 10am UTC on 16-June-2021, we noticed some whales began to remove liquidity from IRON/USDC, then sold TITAN to IRON and then IRON to USDC directly to liquidity pools instead of redeeming IRON, which caused the IRON price off-peg. TITAN dropped from 65$ to 30$ in 2 hours, which later recovered in 1 hour to 52$ and IRON fully recovered its peg.
The protocol and the code functioned as usual, and while we were monitoring the blockchain activity, we thought it’s just another correction prior to recovery. In fact, IRON was already off-peg at least a dozen times in its entire history, while our share-tokens (STEEL and TITAN) crashed much harder over previous weeks. Things not only seemed battle-tested — they were. Users remained calm and trusted in the code, so did we.
While working on the forked code from FRAX, we have studied closely all projects that forked FRAX and can’t maintain their peg at a later date. For that, we already implemented a lot of improvements like our dual collateral ratios mechanism, which already proved to prevent the off-peg problems which occurred many times in real situations before.
Later, at around 3pm UTC, a few big holders started selling again. This time, after they started, a lot of users panicked and started to redeem IRON and sell their TITAN. Because of how the 10mins TWAP oracle works, TITAN spot price drops even further in comparison to the TWAP redemption price. This caused a negative feedback loop, as more TITAN was created (as a result of IRON redemptions) and the price kept going down. A classic definition of an irrational and panicked event also known as a bank run. At the time of writing this, the TITAN supply is 27,805 billion.
At some points, the price of TITAN became so low, close to 0 actually, which caused the redeem contract to revert the redeem transactions. We already queued the fix for this, so people can redeem again at 5pm UTC.
What we just experienced is the worst thing that could happen to the protocol, a historical bank run in the modern high-tech crypto space. Remember that Iron.finance is a partially collateralized stablecoin, which is similar to the fractional reserve banking of the modern world. When people panic and run over to the bank to withdraw their money in a short period, the bank may and will collapse.
Post Mortem Actions
We have learned a great deal from this incident and while nothing could be fixed in the current system, we will continue our journey with more products in the future.
We must conduct an in-depth analysis of the protocol, for which we will hire a 3rd party, in order to understand all circumstances which led to such an outcome.
Our IronBank (lending), IronSwap (pegged assets-focused swap) have been developed already and will be live for testing soon. Iron stablecoin v2 will come later.
“There was no rug pull or exploits,” said Schebesta. “What happened is just the worst thing that could possibly happen considering their tokenomics.”