The news caused panic among USDC holders, which resulted in them exchanging their tokens en masse for other stackablecoins, causing USDC to deviate from one US dollar and intensifying the panic.

In this situation, many USDC holders took it upon themselves to exit the stack and exchange it for other assets. The panic is easy to understand, because in May 2022 the value of the UST steiblocoin dropped many times over due to problems in the Terra ecosystem - and even today it is valued at 2 cents. Consequently, investors didn't want to take an even bigger loss and were in a hurry to get rid of the coin.

Against the backdrop of what was happening, one cryptocurrency enthusiast made an unfortunate mistake – he exchanged over 2 million USDC for just 5 cents in USDT. So how did this happen? Here’s the story.

How millions of dollars are lost in cryptocurrency

The erroneous transaction was found in the blockchain browser by a Twitter user nicknamed BowTiedPickle.eth. Here’s a screenshot of the entire transaction chain.

The user’s transaction chain

As you can see, the USDC owner used the decentralised KyberSwap platform to exchange assets. In fact, it suggested this way of exchanging different tokens, and the user approved it.

The first step in this chain is to exchange a large volume of 3CRV liquidity tokens for USDT through the KyberSwap aggregation router. The Twitter user noted that this was the first strange decision on the part of the anonymous user, as he could have simply withdrawn his tokens from the liquidity pool already in USDT with a slippage of 6 percent. Apparently, he was in too much of a hurry or simply unaware of this feature, reports Cointelegraph.

Possibility to withdraw 3CRV

In the case of the exchange, the user forgot about the slippage or the so-called slippage at all. In this case, it is the difference between the price at which the trader expects to make a trade and the actual price at which the trade is executed. He did not set the value of this option, which also caused problems.


Slippage allows the exchange of crypto assets on pools with insufficient liquidity. Imagine there is a cryptocurrency owner who wants to sell 100 ETH at $1,600. However, there may not be the right number of buyers for that amount of coins on a decentralised exchange. For example, one person may be ready to buy 50 ETH at $1600, another may buy 25 at $1,550 and the third may buy the remaining 25 ETH at $1,500. Accordingly, in this case, the traders' average selling price will be lower than the desired $1,600.

Actually, the deviation of the asset price when making a trade is the slippage. If our trader sets the slippage to 10 percent, then he is essentially allowing the exchange to sell his ethers with a 10 percent deviation from the market price. At a market price of $1,600 for ether, we are talking about a deviation of up to $1,440.

Large slippage is used by traders of illiquid assets, for which there are not enough buyers. For example, sometimes users manage to sell conditional doggy-themed meme-coins with only 50 percent slippage. That means that here the traders are willing to get up to half of the market value of their asset, which is sometimes justified in case the token's value has noticeably risen the day before.

Next, pool 0x7d36fbd3 on UniswapV2 comes into play, which creates a pair between 3CRV/USDC. Its liquidity was only $2 and it was inactive for more than 250 days. It turns out that the exchange could only transact that amount of cryptocurrency.

Pool on Uniswap


Recall that the price of tokens on a decentralised exchange in a liquidity pool is determined by the formula x * y = k, where x is the amount of token A, y is the amount of token B, k is a fixed constant.

At the same time, the liquidity pool represents the amount of money that different cryptocurrency owners have added to a single portion. Actually, this is the money that is used for trades by other people, well liquidity providers get interest from each transaction made.

From this formula follows the following conclusion of the user under the nickname BowTiedPickle.

2 million 3CRVs collapse into the pool with the force of a thousand suns, and x * y = k does its grim work.

Here exactly 54,182 USDC worth about 5 cents leave the contract for the second swap phase, where they are exchanged for USDT and sent to the user.

So, there are two key points in the anonymous user’s mistake. First, he forgot to set the slippage value. Second, for some reason his transaction was made through a “dead” pool on an outdated version of Uniswap with almost zero liquidity. Perhaps the second was a consequence of the first.

However, that is not all. As representatives of the Kyber project point out, the user saw a bad rate for a future transaction, as it is always displayed before the transaction. Accordingly, the trader either didn’t pay attention to the indicator or simply skipped this step and confirmed the transaction without looking. Here is the relevant rejoinder from Kyber representatives, cited by BeinCrypto.

The user saw the transaction rate and then clicked the exchange button. This price was fixed in the KyberSwap interface, but the meta-aggregator kept checking the proposed aggregator routes. As a result, the transaction faced “unusually low user swap yields”.

Platform representatives also noted difficult market conditions at the time of the transaction, as traders were then panicking to get rid of USDC Stablecoin, which severely overloaded the network. According to them, the market was going through a period of heightened volatility, so all the proposed exchange routes failed to get the gas flow rate predicted. The only confirmed exchange scheme was just the user option used, but at a very poor rate.

Buying cryptocurrencies

As noted by Kyber representatives, they have already contacted the originator of the deal and the other parties involved. Accordingly, there is still a chance of recovering at least some of the lost funds after the discussions.


We believe that this situation clearly shows the consequences of inattentive user interaction with their cryptocurrencies. In this case, the investor was afraid of losing millions of dollars due to USDC collapse, but due to blockchain overload, the platform offered poor transaction terms. Well, because the user was in a hurry, he skipped the rate check stage and immediately clicked on the exchange button.

We recommend not to work with your crypto in a hurry, and always verify transaction data before signing. You can also do test transfers and exchanges before going to the full amount. This will allow you to spot a problem and correct it.