An Update on the ‘Erroneously High’ Gas Fee That Temporarily Cost DeversiFi $23.7M


Turns out, all you need to do to get $23 million returned is ask nicely.

On Monday morning, reports emerged that decentralized finance (DeFi) trading platform DeversiFi had somehow “fat-fingered” $23 million by spending an unusually high transaction fee on a simple ERC-20 token swap that should have cost $5.

While initial reports pointed to Bitfinex as the victim, DeversiFi claimed the error as its own.

“In transactions such as these, the fees are shouldered by third-party integrations with Bitfinex. This has also been confirmed by DeversiFi in their recent tweet,” Bitfinex wrote in a statement to CoinDesk.

In a surprise twist, however, on Monday night DeversiFi said in a tweet that the miner who received the unusual transaction fee had returned the majority of the funds – an unusually altruistic move, given that due to the nature of the blockchain the miner could have kept the funds, and it’s unlikely any legal proceedings could have compelled them to return them.

In a post-mortem blog post on Tuesday, DeversiFi said that the funds were sent in an error caused by a fee calculation flub in how the EthereumJS library processes decimals.

The team also said it worked with hardware wallet provider Ledger on a bug patch, and that the bug could only apply to large wallets such as theirs.

How to retrieve $23 million

While working on discovering the cause, the DeversiFi team said it reached out to Binance. The miner’s address continually routes funds to the centralized exchange, presumably to sell mined ETH.

Binance agreed to give the miner DeversiFi’s contact information, and the miner agreed to return the funds “after a few emails back and forth.”

DeversiFi pushed for the miner to keep 50 ETH, or $140,000 at the time of writing, as a reward.

The team also wrote that DeversiFi has implemented “additional safety and sanity checks” to “ensure gas fees associated with transactions could not exceed unrealistic thresholds.” The new checks aim to “protect against user error, extreme network fee spikes” and serve as “an additional layer of protection against any future coding error.”