Yuga Labs launched Otherside, the largest NFT collection ever, on 1 May 2022. The mint consumed $177m in transaction fees and congested the Ethereum network. We’re going to look at why this happened, and how it could have been avoided.
Otherside: Yuga Labs’ latest cash cow
Yuga Labs is the company behind Bored Ape Yacht Club (BAYC), CryptoPunks and Meebits. They launched an NFT collection on Ethereum to sell virtual real estate. To buy the NFT, you needed to do both of the following:
- Pre-register before April 1; and
- Pay 305 $APE (~$5.6K). Yuga launched the APE token for the BAYC ecosystem (I wrote about it here).
They key highlights of the collection:
- Primary revenue from the NFT collection was $310 million.
- Gas fees shot up by 250x and were $6K per transaction when it peaked.
- $150M of ETH was burned from the system.
How capacity is determined on Ethereum
To understand why this happened, we need to consider how transactions are settled on Ethereum.
The blockchain is an immutable list of transactions and these transactions are stored in blocks.
Once a block is validated it is added to the blockchain and becomes immutable. Ethereum uses a method called proof-of-work (PoW) to settle transactions. Later this year, it plans to move to a different method called proof-of-stake (PoS). This move is called “The merge” — I wrote about it here.
With PoW, miners compete to confirm blocks of transactions. In return, they are paid a fee called gas fees. Gas fees are dynamic, meaning that:
When demand for transactions goes up, gas fees goes up.
Incidentally, gas fees are also intended to prevent DDoS (distributed denial of service) attacks. In a DDoS attack, an attacker floods the network with transactions with the aim of bringing it down. For every transaction, the attacker incurs gas fees. Because gas fees are dynamic, the fee increases and the attack become too expensive to carry out.
Every time there is a transaction on Ethereum, a certain quantum of ETH is burned. This is often referred to as EIP-1559, in reference to the name of the proposal that was passed in 2019.
Why it happened
The Otherside NFT launch was concentrated around a couple of hours and is the biggest NFT collection ever sold.
Based on a 24 hour window covering the NFT launch, Otherside consumed 64K ETH in gas ($177m). In comparison, Opensea consumed 4K gas ($11m) over the same period.
Because of the number of transactions, the amount of Eth burnt increased to 65K. On a normal day, less than 10K Eth is burnt.
In order to control demand, Yuga implemented a limit of 2 mints per wallet and believed they set the price high enough.
This clearly wasn’t enough. Given Yuga Labs’ experience, the size of the launch and that users having to pre-register, this could have been avoided. Network congestion is not unique to Web3 and there are several ways to counter a sudden spike in demand:
A higher price
If the price of the item were higher, fewer users would buy. At $55k, it’s unclear that price alone would have solved this. A higher price also makes the NFT collection exclusionary.
A staggered sale
A staggered sale would have reduced the concentration of demand and spread it out. Given they asked users to sign up, implementing this is easy. For example, users are allocated a slot when they register for the mint and have to mint within that slot. It could have been spread over days to avoid network congestion.
Decreased the cap on each user
A limit of 1 mint per wallet would have reduced the concentration of demand. This would also have made the mint more inclusive. Because users were KYC’d (i.e. asked to verify identity), Yuga could have prevented a single user from using multiple wallets.
Used an auction
An auction would have helped achieve the most efficient price for each NFT. More importantly, it would have helped spread demand because mints would have taken place at different times. However, an auction also makes the collection less inclusive because it extracts the highest price.
Smart contract optimisation
NFTs are issued on smart contracts. These smart contracts have logic built in. For example, when you transfer an NFT to someone, you are invoking a function in the smart contract. The way code is written in the smart contract can determine the amount of gas needed when a user mints an NFT.
Vitalik doesn’t believe that optimising the code within the contract would have helped.
However, there is some nuance here. All of the other suggestions above (e.g. limit of 1 per transaction or a raffle system) need to be written into the smart contract. This may not have reduced the gas fee per transaction, but it would have spread out demand across a longer period. Without doubt, Yuga Labs should have spent more time understanding the implications of their mint given its size.
It led to many users incurring gas fees for failed transactions (i.e. they didn’t end up with the NFT). Yuga Labs has offered to refund gas fees for all users with failed transactions.
Where do we go from here?
The Otherside launch surfaces two issues:
- Ethereum’s scale is limited.
- With enough power, network participants can make Ethereum unusable.
Ethereum will continue to be the #1 choice for NFTs
Given the size of the NFT market on Ethereum, it’s unlikely that everyone drops the chain and moves elsewhere. If you assume the NFT market will only grow, this may lead to more demand and higher gas prices. However, for blue-chip NFT projects, Ethereum will continue to be the chain that offers the best security and reliability.
Difficult, but not impossible for a new entrant
Given this deep-dive Ethereum may seem like it’s flawed. It’s not. The dynamic nature of gas fees is a feature, not a bug. Without this, the network will get attacked frequently.
There’s room for a new chain if it can find a way to be scalable, reliable and sufficiently decentralised (referred to as the blockchain trilemma). It also needs to develop sufficient network effects. As above, everyone wants to hang out where the cool kids are.
Solana has been touted as a better destination for NFTs. It has larger blocks and is more scalable. But it’s also less decentralised and reliable. Ironically, Solana was down for nearly 7 hours because bots DDoS’d it!
I’m an optimist and I believe in a multi-chain future for Web3. Solving the blockchain trilemma is going to require engineering excellence, and gaining sufficient network effects will require stellar execution.
Yuga’s launching it’s own blockchain
Yuga Labs accepted their error and announced that they are going to launch a new blockchain. There was sufficient backlash from the community. There are conspiracy theories that Yuga Labs knew the implications of their mint on the network, and decided to go ahead anyway because it gives them reason to launch their own blockchain.
I’m on the fence about Yuga pulling this off. As above, the opportunity exists. I’m just not convinced that Yuga is the right team to do this. I’d much prefer this to be an open-source, community-run protocol like Ethereum.
For a company like Yuga Labs, this was far from ideal. I’m not interested in discussing whether this was intentional or not. The space is new and mistakes happen, but we need the best in the space to set the standards. The insanely high gas prices are a feature. Without this, Ethereum would get attacked. The biggest opportunity in Web3 continues to be in the primitive — a blockchain that is scalable, reliable, fast and sufficiently decentralised.