NftFi and Floor Price Oracles

This is an unrolled Twitter thread, the original thread can be found here:
https://twitter.com/john_iller/status/1633944117104320516


As NFTfi continues to boom, the NFT floor price is becoming a critical data point with millions of dollars depending on its accuracy.

🧵 about NftFi, floor price, and how some floor price oracles calculate it.

Features @dropsnft, @nftperp, @NFTX_, and @HookProtocol

 

Some background – the floor price is the lowest price for an NFT within a collection. Often people use lowest asking price (sale price).

The trade volume at/near the floor price is increasing, meaning NFTs are becoming more fungible in general.

https://twitter.com/celiawan2/status/1623307886939054084

 

There's also more trading happening *below* the floor, i.e. sellers accepting offers below the listed price. Price is increasingly set by sellers, not buyers.

Thus a good floor price uses actual trading activity where buyers/sellers meet a fair price.

https://twitter.com/celiawan2/status/1623307890927845378

 

Why do we need to know the floor price?

In addition to being useful for buyers and sellers of NFTs, the emerging sector of NftFi includes novel derivative applications such as lending/borrowing, fractionalization, perpetual swaps, and more.

This means you can get exposure to NFTs in novel ways – e.g. smaller traders can get exposure to CryptoPunks, BAYC, etc without spending over 70+ ETH to own one.

This increases participation while also ultimately making the market more efficient.This also means you can financialize your NFT without having to sell the underlying NFT.

People get emotionally attached to their NFTs or even build brands around them. If that NFT greatly increases in value, you can now monetize the NFT without parting with your beloved JPEG.

 

But using an oracle comes with risk – how can you be sure that the price is accurate?

Some NftFi projects are calculating their own *non-manipulated* floor price and reporting the price feed using @chainlink. They might also average this value with other price oracles.

This is the approach taken by @dropsnft – a protocol that allows lending/borrowing/financializing of NFTs.

DropsDAO is in architecture to @compoundfinance and relies on a price feed for liquidations. @dropsnft pioneered a solution to calculate the spot floor price.

In general, the approach taken by @dropsnft is to take each sale thru multiple steps and weed out trades that don’t pass all the checks:

1. Check the sale wasn’t a wash trade
2. Remove extreme outliers – those below 5% or above 950% of the floor
3. Remove “probable” outliers

Getting into the weeds a bit, the “probable” outliers are weeded out by calculating a rolling acceptable price range using the Sample Standard Deviation and maintaining a rolling average using a Truncated Mean.

https://en.wikipedia.org/wiki/Standard_deviation#Estimation

https://en.wikipedia.org/wiki/Truncated_mean

If a sale is lower than 75% of the moving average and outside the standard deviation range, the sale is weeded out as a probable outlier.

Lastly, they keep a list of the last 10 trades that pass the checks, and the lowest one is the floor price, updated every 4 hours.

@nftperp is an NFT perpetual swaps exchange on @arbitrum . You can take leveraged trading positions on NFT collections w/o owning the NFT (settles in $ETH).

Their oracle works like @dropsnft's but they have tweaked certain risk parameters on a collection-by-collection basis.

@nftperp also keeps track of a rolling acceptable range with an added a "sensitivity multiplier" to vary the range by collection.

Given the massive disparity in unit size, volume, etc among NFT collections, and perps needing a very live oracle, this seems like a good move.

@NFTX_ is a platform for fungible ERC-20 (vTokens) that represent underlying NFTs. This is a form of fractionalization where each token gives you a share of ownership over a pool of NFTs. Users can redeem 1 vToken for an NFT in the pool.

As a bonus, the price of these vTokens should give a good metric for the floor price, as arbitrageurs can profit off of any price difference between ERC-20 and floor.

The vToken price tracks the floor price quite well for collections with high liquidity and low vault fees.

On some collections with a higher unit size, or where the arbitrage trade is too costly, the vToken price can deviate from the floor price dramatically, usually expressed by a much lower sell price.

As these vaults grow in liquidity, I expect these gaps in the spread to close.

@HookProtocol is an NFT options platform that determines floor price without oracles at all.

The day before an auction expires, the underlying NFT is listed for sale and an auction begins, which determines the settlement price. Thus the floor is decided by traders in real time.

Without getting into the inner workings of options, this works like getting paid to sell an NFT (at a fixed later date) with a minimum reserve price.

This also means the NFT must be used as collateral. While this sidesteps the oracle risk it introduces other tradeoffs.

 

I’m excited for these and other projects to build solutions that accurately report the floor price. Over time, these will become battle tested and allow NftFi markets to flourish.