Skip to content

Instantly share code, notes, and snippets.

@corygabrielsen
Last active August 26, 2021 02:43
Show Gist options
  • Select an option

  • Save corygabrielsen/b743aeb4779118f9757bc0eb44b5e877 to your computer and use it in GitHub Desktop.

Select an option

Save corygabrielsen/b743aeb4779118f9757bc0eb44b5e877 to your computer and use it in GitHub Desktop.
Smart Contract Auction Model Ideas

Goal

The goal of this document is to overview the current state of (NFT) auction programming (on Ethereum), identify weaknesses, and propose solution ideas.

This document is provided for free at no cost. All ideas are open source and encouraged for use.

This is not a scientific paper. Its meant for easy reading.

Good Auction Models

A good auction model generally has the following properties:

  • Easy to participate, "it just works"
  • Minimize miner extractable value
  • Maximize price paid to seller
  • Fairness
  • When auction concludes, there do not exist anymore buyers at the lowest sold price. That is, all interested buyers were allowed to participate without losing to MEV or too-short time windows.

These properties are not strictly required, and generally more clever objective functions exist. But these are general guidelines most auctions optimize for.

Some auctions may optimize for other properties, including but not limited to:

  • Restrictions on who can bid
  • Restriction on how many items a single bidder may win
  • Time-based rules / pausing

Overview of popular, existing auction models

Fixed Price Auction

A fixed price auction offers all NFTs available for mint at the same price.

Major Cons:

  • Fixed price and limited supply means first come first serve winners. This creates MEV and gas spikes.

English Auction

Briefly stated, an English Auction is an ascending price auction with a minimum reserve price. Bidders submit increasingly higher bids. The highest bidder(s) win the item(s).

It is important that the auction time extends for every new, higher bid. To prevent abuse, a minimum delta percentage between bids can be enforced.

Mature auction implementations may benefit from extending the auction when BASEFEE is high to allow more participants and reduce MEV.

For multi-item auctions, the Nth lowest bidder will win the Nth item. Some multi-item auctions may snap all bids to the floor winning bid, or in other cases, "excess" bids may go to seller.

Major Pro:

  • No time pressure (assuming reasonable parameters)

In the middle:

  • May not maximize price compared with descending auction (research this?)

Major Cons:

  • ???

Dutch Auction

A Dutch auction is a market structure in which the price of something offered is determined after taking in all bids to arrive at the highest price at which the total offering can be sold

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment