Waterfall is an on-chain NFT (ERC-721) trading and pricing protocol. The mechanism intends to provide price discovery and instant price querying for NFTs that are listed on the protocol (i.e. it does not appraise any NFTs that isn't being sold).
When an NFT is listed on the protocol, it fractionalizes the NFT into a specified number of chips: ERC-1155 tokens that represent predictions on the NFT's future valuation. They may exchange hands however, but the main invariant the mechanism maintains is that all chips must be listed at all times. In other words, each chip has a price that anyone can match to acquire it. This remains true until somebody decides to buyout the NFT, which pays out each of the chip owners and transfers the NFT out of the protocol to the buyer.
To list an NFT for sale on Waterfall, a seller must specify the number of chips and initial parameters to list the NFT. Upon listing, the NFT is transferred to the protocol, and the specified number of chips (represented by ERC-1155 tokens) are minted to the seller. After this, the main invariant the protocol maintains is that every chip must be listed at all times (i.e. anyone can acquire it by matching the price). Then, the price of the NFT is the sum of all chips' listings.
Suppose some chip trader wants to predict the price of a listed NFT by purchasing some chips. Since every chip must be listed at all times, they must specify a predict price (prediction of the future value by some date), and an expiration date (date the prediction lasts until) when purchasing. The protocol will then immediately relist the purchased chips at the predict price until the expiration date.
If a chip has not sold by its expiration date, they automatically start Dutch auctioning down to 0. The price linearly decreases over some length of time that the NFT seller specified when creating the listing. Note that this length is the same for all chips per listing.
For this mechanism to be valid, the prices of both the chips and the NFT must be at some price buyers are willing to match. Suppose some chip trader relists their chip at a price nobody will ever match. Although the entire NFT is available for buyout, this scenario effectively freezes the asset. To solve this, the mechanism takes a percentage fee of the relist predict price, which increases the further the expiration period is into the future. Upon placing a prediction, the fee is distributed to the corresponding seller and the Waterfall protocol. This discourages unrealistic predict prices and expiration dates.
To buy an NFT listed on Waterfall, the buyer has to match the protocol-determined value at the time of purchase (i.e. the sum of the chips' listings). Then, the funds are transferred into the protocol, and the NFT is transferred to the buyer.
Buyout funds are not distributed upon buyout to the chip owners (gas limit). Instead, the buyout timestamp is marked into the contract, which solidifies the price for each chip at buyout. This allows for a claim funds function, where chip owners can claim buyout funds in exchange for their corresponding fractions (these are burned). Note that chip owners are responsible for claiming their buyout funds.
Updated about 2 months ago