At 08:43:37 PM on December 9th (UTC), the Anchor Oracle Price Feeder registered a $bLUNA price of $58.44, significantly lower than the reported $LUNA price on exogenous exchange venues, quoted as ~$66.10 on Binance’s LUNA/USDT pair at the time.
The inaccurate price reported by the Anchor Oracle Price Feeder caused erroneous liquidations for 239 users who had open borrow positions below the max LTV of 60%. In total, ~690,727.49 bLUNA (~$37.249M total discounted value) were liquidated. Two additional price discrepancies occurred subsequently, approximately 30 mins apart from the original event. These events triggered 3 total liquidations. However, the bulk of affected liquidations occurred immediately after the initial price discrepancy.
We’re currently investigating the precise source of the issue, and in the meantime, have implemented a patch fix for the Anchor Oracle Price Feeder to mitigate any further discrepancies.
Of note, we have an impending governance proposal to migrate the Anchor Oracle Price Feeder and replace it with a combination of the following:
bLUNA/LUNA * Chainlink – to use the primary source of price of bLUNA from the Chainlink price oracles
The new price feed structure sources prices from Chainlink’s venerated oracle network + the Anchor Hub Contract, which precisely tracks the LUNA/bLUNA ratio since all bLUNA minting passes through it.
We will release more details about the precise mechanics of the issue once we’ve concluded our investigation into the error. Concerning the affected users, there are several important notes and remedial steps to consider.
First, a subset of the 242 affected borrowers on Anchor had open positions for both bLUNA & bETH – totaling 102.74 bETH ($0.359M total discounted value at trigger price). These users were liquidated for both bLUNA and bETH since liquidation is proportional.
That part is notable as many users claimed bETH was also affected by the oracle feed mishap. However, bETH liquidations for those users were a consequence of also having a bLUNA position open – which was the only collateral affected by the faulty oracle price.
We’re currently querying the individual borrower state by block height for the event, but the general calculations of the event are below. Using the average price from the bLUNA oracle of ~66.35 for the affected collateral immediately before and after the initial price discrepancy, we can calculate the following.
bETH value + bLUNA value = $46,247,494.37
Reimbursing any liquidation premium and price discrepancy gap for the faulty price would take every liquidated position back to neutral. For example:
Total value liquidated - Sold off liquidation = Amount to reimburse.
The total to reimburse affected users:
bLUNA repay = 37,249,938.26
bETH repay = 359,251.19
Total repay = 37,249,938.26 + 359,251.19 = $37,609,189.45
To reimburse: 46,247,494.37- 37,609,189.45 = $8,638,304.92
Including the liquidations from the following 2 oracle price discrepancies, which are smaller, the final total will likely be closer to $9 million. We’ll have a more precise figure once we’re finished calculating per borrower contract balances at different block heights.
We encourage the community to create a governance proposal to compensate the affected users of this oracle pricing issue via $ANC allocations from the community pool, where we can discuss openly in the comments below.
Other options may be available and we encourage the community to explore them openly. Please direct your feedback to the comments in this forum post.
Ian/PFC