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.
- Proof-of-space cryptocurrency Chia triggers HDD sales boom in Europe
- Thailand bans joke cryptocurrencies and non-fungible tokens
- China arrests over 1000 for using cryptocurrency to help launder proceeds of phone scams
- Antivirus that mines Ethereum sounds a bit wrong, right? Norton has started selling it
The Register has been unable to verify that claim. 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. A query to the company's Twitter account went unanswered.
We tried asking about the claimed code error on the Iron Finance's Discord channel, where investors were clearly displeased. Jotad, active channel admin at the time, did not address our question but said to aggrieved investors, "Redeem your IRON, death threats really don't help here."
However, Iron Finance's own description of the incident outlines a scenario that's consistent with what was proposed by the unidentified Medium author.
"At some points, the price of TITAN became so low, close to 0 actually, which caused the redeem contract to revert the redeem transactions," Iron Finance said in its incident report on Thursday morning PST (around 4pm UTC). "We already queued the fix for this, so people can redeem again at 5pm UTC."
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." ®