A cryptocurrency token called TITAN collapsed on Wednesday, going from about $60 apiece to near zero in a matter of hours. The sales frenzy, attributed to a sell-off driven by whales, people who hold large amounts of a cryptocurrency in this context, also destabilized a so-called stablecoin known as IRON.
A stablecoin is pegged to a reserve asset like the dollar, the idea being there’s less volatility when investors know they can redeem their fanciful crypto credits for paper depicting dead presidents or some other thing likely to retain value.
IRON, however, proved to be anything but stable because it is only partially collateralized (about 75 per cent) by the US dollar. The remainder of its value came from TITAN tokens, and when the TITAN price collapsed, IRON took a hit too. Among those caught up in the crypto run was tech moneybags Mark Cuban.
“I got hit like everyone else,” he said. “Crazy part is I got out, thought they were increasing their TVL enough. Than Bam.” TVL is the total locked value.
The situation might have been a mere market fluctuation and arbitrage opportunity for the crypto set, were it not for the effect the drastic price swing had on IRON’s smart contract, the code running on the BinanceSmartChain that governs transactions.
Simply put, the smart contract failed as the price approached zero.
“Since the price of TITAN has fallen to 0, the contract does not allow for redemptions,” explained Iron Finance, the firm behind the IRON partial stablecoin, in a statement on Wednesday. “We will need to wait for 12 hours for the timelock to pass before USDC redemptions are possible again.”
In a Medium post on Thursday, an unidentified individual claimed that the reason for this is that the IRON smart contract code [line 149] for redeeming the not-so-stable coin (exchanging it for another currency) contains an off-by-one boundary error: require(_share_price > 0, “Invalid share price”);
If that’s correct, the use of the “>” (greater than) operator rather than “>=” (greater than or equal to) would mean that a TITAN value evaluated as zero (which depends on the numeric precision of the calculation) would be considered invalid and would be disallowed for redemption.
There has been no response from Iron Finance regarding the claimed code error.
However, Iron Finance’s own description of the incident outlines a scenario that’s consistent with what was proposed by the unidentified Medium author. Iron Finance does not disclose those operating the company on its website and the developers behind IRON are not widely known and are not publicly listed in its GitHub repository.
So after a half-day delay, crypto dreamers holding IRON have, at least theoretically, regained the ability to redeem their investment, though they’ll only get back about $0.75 for every dollar initially invested. The TITAN portion of IRON appears to have flatlined.
Undaunted, Iron Finance is ready to try again. “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,” said Iron Finance. “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.”