Sell below the market clearing price to achieve a fair alternative
Author: Vitalik Buterin
Original Title: “Alternatives to selling at below-market-clearing prices for achieving fairness (or community sentiment, or fun)”
Published on: August 22, 2021
When sellers want to sell a fixed supply of goods with high (or uncertain but potentially high) demand, one choice they often make is to set the price significantly below the "market-clearing" price. The result is that the item sells out quickly, with the lucky buyers being those who managed to purchase first. This has occurred in many cases within the Ethereum ecosystem, particularly in NFT sales and token sales/ICOs. However, the historical phenomenon predates this; for example, certain concerts and restaurants often make similar choices, setting low prices that lead to seats selling out quickly or long lines of buyers.
Economists have long asked the question: why do sellers do this? Basic economic theory suggests that the best scenario is for sellers to sell at the market-clearing price, where the quantity buyers are willing to purchase exactly matches the quantity sellers must sell at that price. If sellers do not know what the clearing price is, they should sell through an auction and let the market determine the price. Selling at a price below the market-clearing price not only sacrifices seller revenue; it can also harm buyers: the product may sell out so quickly that many buyers have no chance of obtaining it, no matter how much they want it and are willing to pay for it. Sometimes, the competition created by these non-price-based allocation mechanisms can even produce negative externalities that harm third parties— as we will see, this effect is particularly severe in the Ethereum ecosystem.
Nevertheless, the widespread practice of pricing below market clearing suggests that there must be some compelling reasons for sellers to do so. In fact, as research on the topic over the past few decades has shown, there is often a purposeful rationale. Therefore, it is worth asking: is there a way to achieve the same goals with greater fairness, less inefficiency, and less harm?
Selling below market-clearing prices leads to significant inefficiency and negative externalities
If sellers sell items at market prices or through auctions, those who truly want the item have a straightforward way to obtain it: they can pay a high price, or if it is an auction, they can bid high. If sellers sell goods below market prices, there is excess demand, so some people will get the item while others will not. However, the mechanism that determines who will receive the item is clearly not random and often does not correlate well with how much participants want the item. Sometimes, it involves clicking a button faster than others. Other times, it involves waking up at 2 AM in your time zone (but 11 PM or even 2 PM in others’ time zones). At other times, it simply turns into a "chaotic auction by other means," a more disorderly, inefficient auction filled with more negative externalities.
There are many obvious examples in the Ethereum ecosystem. First, we can look at the ICO boom of 2017. In 2017, a large number of projects launched initial coin offerings (ICOs), with a typical model being capped sales: projects would set a price for the tokens and a hard cap on how many tokens they were willing to sell, and sales would automatically start at a certain point in time. Once the token supply reached the cap, the sale would end.
What was the result? In fact, these sales often ended in just 30 seconds. Once (or rather, just before) the sale began, everyone would start sending transactions in an attempt to get in, offering increasingly high fees to incentivize miners to include their transactions first. An auction by another name—except the revenue flows to miners rather than token sellers, along with extremely harmful negative externalities that price all other applications on-chain during the sale.
For example, the most expensive transaction in the BAT sale set a fee of 580,000 gwei, meaning a fee of $6,600 was paid to participate in the sale.
Many ICOs thereafter tried various strategies to avoid these gas price auctions; one ICO had a particularly clever smart contract that checked the gas price of transactions and rejected them if they exceeded 50 gwei. But this certainly did not solve the problem. Buyers hoping to game the system sent many transactions, hoping at least one would succeed. Once again, an auction by another name, leading to further congestion on the blockchain.
Recently, ICOs have become less popular, but NFTs and NFT sales are now very popular. Unfortunately, the NFT space has failed to learn the lessons of 2017; they conduct fixed supply sales in the same way as ICOs (for example, see the minting function in lines 97-108 of this contract). What was the result?
This isn't even the highest fee; some NFT sales caused gas prices to soar to 2000 gwei.
Once again, users sent increasingly high transaction fees just to succeed in front-running transactions, causing gas prices to skyrocket. As before, another auction, pricing all other applications on-chain within 15 minutes.
So why do sellers sometimes sell below market prices?
Selling below market prices is not a new phenomenon, both within and outside the blockchain space. Over the past few decades, there have been many articles, papers, and podcasts (sometimes bitterly complaining) about the reluctance to use auctions or set prices at market-clearing levels.
Many arguments are very similar between examples within the blockchain space (NFTs and ICOs) and outside of it (popular restaurants and concerts). One particular concern is fairness and the desire not to exclude the poor, not to lose fans, or to create tensions perceived as stemming from greed. The paper by Kahneman, Knetsch, and Thaler in 1986 articulates well how views on fairness and greed influence these decisions. In my own recollections of the ICO season of 2017, the expectation of avoiding the perception of greed was similarly a decisive factor preventing the use of auction-like mechanisms (I have little memory of this and not many sources, although I did find a link to a now-unavailable imitation video that made some comparison between the auction-based Gnosis ICO and the National Socialist German Workers' Party).
In addition to fairness issues, there is a long-standing argument that selling out and creating long lines generates a sense of popularity and good word-of-mouth, making the product more attractive to others. Of course, in rational hype models, high prices should produce the same effect as long lines, but in practice, long lines are more pronounced than high prices. This is true for ICOs and NFTs as well as for restaurants. Beyond these strategies that generate more marketing value, some people actually find it fun to participate in or watch others seize limited opportunities before everyone else takes them all away.
But there are also some blockchain-specific factors. One factor for selling ICO tokens below market-clearing prices (and a decisive factor in persuading the OmiseGo team to adopt their capped sale strategy) relates to community dynamics of token issuance. The most basic rule of community sentiment management is simple: you want the price to go up, not down. If community members "realize an increase," they are happy. However, if the price is below what community members paid when they bought in, putting them in a net loss position, they become unhappy and start calling you a scammer, potentially triggering a chain reaction on social media where others also call you a scammer.
The only way to avoid this effect is to set the sale price low enough that the post-listing market price is almost certain to be higher. But how do you actually do this without causing a rush that leads to an auction-like scenario?
Some more interesting solutions
Now it is 2021. We have blockchain. Blockchain not only contains a powerful decentralized finance ecosystem but also a rapidly growing suite of various non-financial tools. Blockchain also provides us with a unique opportunity to reset social norms. For decades, economists have shouted about "efficiency" in the face of failures, while ride-sharing services like Uber have legitimized surge pricing; certainly, blockchain can also be an opportunity to legitimize new uses of mechanism design. Rather than fiddling with the coarse-grained one-dimensional strategy space of selling at market prices versus below market prices (perhaps with a second dimension of auctions versus fixed-price sales), can we use more advanced tools to create a more direct solution to the problem with fewer side effects?
First, let’s list the goals. We will try to cover (i) ICOs, (ii) NFTs, and (iii) conference tickets (which are essentially a type of NFT); most of the desired attributes are present in all three cases.
Fairness: Do not completely exclude low-income individuals from participation, at least giving them some opportunity to participate. For token sales, there is a somewhat different but related goal of avoiding high initial wealth concentration and having a larger and more diverse initial community of token holders.
Avoid creating a race: Prevent situations where many people rush to take the same action, with only the first few getting in (which leads to the awful auctions we saw above).
No need for fine-grained knowledge of market conditions: The mechanism should work even if the seller has no idea how much demand there is.
Fun: Ideally, the process of participating in the sale should be enjoyable and have a game-like quality, but not be frustrating.
Provide buyers with positive expected returns: In the case of tokens (or NFTs, for that matter), buyers should be more likely to see the product price rise rather than fall. This inevitably means selling to buyers at prices below market prices.
We can start by looking at (1). From the perspective of Ethereum, there is a very clear solution. Rather than creating competitive conditions, simply use a clearly designed tool to accomplish this: proof of personhood protocols! Here is a quickly proposed mechanism:
Mechanism 1: Each participant (verified through proof of identity) can purchase up to X units at a price of P; if they want to buy more, they can purchase in an auction.
This seems to meet many goals: it provides fairness in terms of per capita participation, and if the auction price exceeds P, buyers can receive positive expected returns from the portion they can sell through the per capita mechanism, while the auction portion does not require sellers to understand the level of demand. Does it avoid creating a race? If the number of participants buying through the per capita pool is not too high, it seems to do so. However, what if so many people show up that each person's pool is not large enough to provide allocations for everyone?
Here’s an idea: make the allocation amount for each person dynamic.
Mechanism 2: Each participant (verified through personal proof) can deposit into a smart contract to indicate interest in obtaining up to X tokens. In the end, each buyer will be allocated min(X, N / numberofbuyers) tokens, where N is the total amount sold through the per capita pool (some additional amount can also be sold through auction). The portion of the buyer's deposit exceeding the amount required for the purchase allocation will be refunded to them.
Now, regardless of how many buyers there are through the per capita pool, there are no competitive conditions. No matter how high the demand is, there is no advantage to participating early.
Here’s another idea if you prefer your game mechanics to be clever and use fancy quadratic formulas.
Mechanism 3: Each participant (verified through personal proof) can purchase units at a certain price, up to the maximum quantity each buyer can purchase. Starting from a low quantity, then increasing over time until enough units are sold.
This mechanism has a particularly interesting property: if you are making governance tokens (please don’t; this is purely a suggestion to reduce harm), the number allocated to each buyer is theoretically optimal, although of course, the after-market transfers over time will reduce this optimality. Mechanism 2 and Mechanism 3 seem to meet all the above goals, at least to some extent. They are not necessarily perfect and ideal, but they are indeed good starting points.
There is also a question. For fixed and limited supply NFTs, you may encounter the issue where the equilibrium purchase quantity per participant is a fraction (in Mechanism 2, it may be that numberofbuyers > N, and in Mechanism 3, the setup may have led to enough demand to oversubscribe the sale). In this case, you can sell fractional goods by offering a lottery: if there are N items for sale, then if you subscribe, you have a chance to receive N / numberofbuyers items, or else you will receive a refund. For conferences, groups wanting to attend together can bundle their tickets to guarantee a win or lose outcome. The ability to obtain specific items can be sold at auction.
An interesting mild gray hat strategy for conference tickets is to disguise a pool sold at market prices as "sponsored" underlying. You might end up seeing a bunch of faces on the sponsor board, but… maybe that’s okay? After all, EthCC has John Lilic's face on their sponsor board!
In all these cases, the core of the solution is simple: if you want to be reliably fair to people, then your mechanism should have some clear measure of people's input. Proof of personhood protocols can achieve this (potentially combined with zero-knowledge proofs to ensure privacy). Therefore, we should combine the efficiency gains of market pricing and auction pricing with the equity gains of proof of personhood mechanisms.
Responses to Potential Questions
Q: Won't many people who don't care about your project buy the item through the egalitarian scheme and immediately resell it?
A: Initially, probably not. In practice, this meta-game takes time to reveal its potential. However, if/when they do, one possible mitigation is to make them unable to trade for a period of time. This is actually effective because personal proof is non-transferable: you can always claim your previous account was hacked using your face, and everything associated with your identity, including all of it, should transfer to a new account.
Q: What if I want my project to be accessible not only to the general public but also to specific communities?
A: Don’t use proof of personhood; instead, use proof of participation tokens related to events within that community. Another alternative, also with egalitarian and gamified value, is to lock some items behind the solutions to publicly released puzzles.
Q: How do we know people will accept this? In the past, people have resisted strange new mechanisms.
A: It’s hard to get people to accept a new mechanism they find strange, especially when economists write about how they "should" accept it for "efficiency" (or even "fairness"). However, rapid changes in the environment do a good job of resetting people's expectations. So if there’s a good time to try this, the blockchain space is that time. You could also wait for the "metaverse," but the best version of the metaverse is likely to run on Ethereum in some way, so you might as well start now.