Demystifying NFT Price Oracle

By William Lee, Huobi Tech

The Introduction

The NFT market has boomed since the rise of crypto art in early 2021, especially after the concept of “metaverse” swept the world. According to NFTGO, the NFT market capitalization reached around $38.7 billion in January 2022, increased nearly 500 times from a year earlier, with daily trading volume also reaching $4.5 billion. However, the NFT market began to decline. The current NFT market capitalization is just $22 billion with an average daily volume of $100 million, down 37.1% and 97.8% respectively from its peak in January 2021.

The overall downturn in the NFT market, not only due to the factor that the whole crypto market is in a slump, but also related to NFT itself. For the crypto industry, after the spot market becomes mature, it will generally move into deeper and broader markets such as lending and derivatives. Not long ago, people talked about NFT + DeFi, which is to make such an attempt to expand the scenarios of NFT and further release the market potential of NFT.

However, the non-fungible nature of NFT makes their pricing extremely difficult, which prevents NFT from expanding smoothly into areas such as lending and derivatives. Specifically, in the lending sector, NFT as collateral must have a value in order to determine the LTV (the ratio of the loan amount to the value of the collateral). While in the derivatives sector, contracts must have a markup price of an NFT in order to complete settlement and delivery.

To solve the above problems, NFT price oracle plays a decisive role. This is why the market is so concerned about NFT price oracle, which is an important infrastructure for the industry. Once the NFT price oracle is successfully landed, both NFT lending and various NFT derivatives will not be a distant dream.

1. Preliminary Discussion on NFT Price Oracle and “Price”

When we talk about “asset pricing” or “price discovery” for NFT oracle, it is important to be clear what is the “price” in NFT oracle. Normally, the feed price of the ordinary oracle is the “latest transaction price (spot price)”, but in the field of NFT oracle, which is not proper. There are two main reasons:

First of all, the transaction volume of NFT is not large in a specific period of time, resulting in NFT price is only the “latest transaction price” but not the “real time”, and it leads to the phenomenon of NFT price discontinuity. Secondly, the prices of NFTs within the same collection are different. For example, some popular CryptoPunks are priced as high as several million dollars while others are only a few hundred thousand dollars, which is prone to distort prices.

So what kind of price does an NFT oracle have to offer? Let’s look at two main applications of the NFT oracle: lending and derivatives.

In the lending sector, prices provided by NFT oracle are mainly used for clearing: when the value of the NFT acting as collateral falls or CDP increases, LTV (loan-to-value Ratios) will rise and the clearing will happen to protect the security of lenders. Therefore, in the lending sector, the NFT oracle should provide prices that could realize clearing. In other words, the price at which the collateral can be cleared quickly and this price should be continuous. Otherwise, insolvency will occur because the clearing is not timely.

In the field of derivatives, the price provided by NFT oracle (mark price) is mainly used in two areas: first is to determine the profit and loss situation of derivatives, in other words, completing the settlement of derivatives position. The second is price anchoring, which makes the underlying price of derivatives finally converge with spot price. There are two main ways to realize this function: first, delivery at maturity (essentially the arbitrage between derivatives and spot); the second is the arbitrage during the duration of derivatives (such as the arbitrage of funding rate in perpetual contract). For the first function, the price is required to be continuous, otherwise there is risk of short positions. For the function of price anchoring, it is required that the mark price provided by NFT oracle is the price where positions can be traded in time and quickly, so as to ensure the smooth of arbitrage.

Therefore, the price provided by NFT oracle should meet two characteristics: one is continuity, the price is continuous in the time dimension. The second is liquidity, the price at which assets can be traded cheaply and quickly.

For the continuity of price, floor price is a good solution. As the lowest price for an NFT project, floor price tends to have good continuity. Because it represents the same lowest price for different NFTs in the same collection, rather than the price of a single NFT. It should be noted that floor pricing only effectively ameliorates discontinuity problem of NFT price, but does not completely solve it. For NFT projects that are sought after by the market, their floor prices often show good continuity, but for some tail NFT projects, their floor prices still have the characteristics of discontinuity.

Of course, price continuity is not strictly required in practice, as even for Cryptocurrencies, there are occasionally gaps. This problem is usually solved by adding insurance premiums or smoothing by time-weighted average price. Therefore,for NFT oracle, our attention should focus on the liquidity of price.

In fact, we will find that asset pricing and liquidity in NFT are two sides of the same coin.

From a micro market perspective, liquidity reflects how easy it is to turn an asset into “cash”, which is eventually reflected in the price- the more difficult it is to realize, the greater the discount, and the lower the asset price. For example, when a user wants to sell $1 million worth of USDTs quickly, these can be sold at $999,000 because USDTs are liquid. However, if a user wants to sell $1 million worth of virtual land quickly, he has to sell it for $800,000 due to the lack of liquidity. Similarly, from the above analysis, we can see that at a certain price level, the NFT asset must be able to be traded rapidly for clearing, settlement or arbitrage.

Therefore, the price offered by NFT oracle must be one that is liquid (NFT can be sold at low cost and quickly).The most straightforward way to do this is to provide real-time prices by constructing liquid pools.

2. The Essence of NFT Price Oracle

If NFT oracle is so important, why haven’t it been deployed on a large scale? What are the obstacles? This brings us to the question of nature of NFT oracle.

In the blockchain industry, the general oracle is essentially a kind of intermediary software for data deployment and access. The main function is to write external information into the blockchain. However, the special feature of NFT oracle is that the is that the missing, late, or inaccurate external price data of NFT make it necessary for NFT oracle to complete the calculation and processing of data. In other words, the NFT oracle must solve the pricing problem. On this basis, different routes of NTF oracle are showed in the market, as follows:

1)    Traditional oracle route: directly call the existing price data in the market (such as CryptoPunks, BAYC floor price), representative projects such as Chainlink;

2)    Algorithm driven route: Based on historical data and metadata, price data are calculated by Machine Learn/ AI algorithm, representing projects such as Upshot, Banksea;

3)    Quotation driven route: through auction processing to get price data, representative projects such as PawnHouse

4)    Liquidity driven route: Construct liquid pools and provide quotes based on liquidity, representing projects such as Abacus.

Of course, no matter which route is chosen,an ideal NFT oracle should meet at least three conditions:

1)    Accuracy of data: The data written into the blockchain by NFT oracle must be accurate and true.

2)    Timeliness of data: Data must be written to the blockchain within a specified time.

3)    Security of data: The design of the price oracle must be able to defend all kinds of attacks.

So, which NFT oracle route has the most potential? We may take the above three conditions as the benchmark to analyze each route.

3. The Analysis of NFT Oracle

3.1 Traditional Route

Since it is difficult to calculate and process the price of NFT, it is better to take the traditional route – only to call and access external data. As noted above, pricing and liquidity in NFT are two sides of the same coin. For NFT projects that have high quality and good liquidity in the market, their floor price can be used as the source of feed price for NFT oracle.

The NFT oracle developed by JPEG’d, a lending protocol in collaboration with Chainlink is the typical of this route. In the current NFT market, CryptoPunks and BAYC, as well-known NFT projects, are at the forefront of the market both in terms of daily trading volume and pending/supply ratio, sothey have good liquidity when sold at floor price level.

In addition, to reduce the risk of market manipulation, Chainlink’s NFT floor prices for JPEG’d are time-weighted average (TWAP) of trading volumes and floor prices and wash trades and anomalies are removed.

NFT prices provided by Chainlink are certainly excellent in terms of accuracy, timeliness and security, but they are not a good example– for most NFT, low trading volume and poor liquidity are common. As a result, Chainlink is limited to provided floor price data for top assets such as BAYC and CryptoPunks, which limits the use of NFT oracle.

3.2 New Route of Price Oracle

3.2.1 Algorithm Driven

Algorithm driven route, which uses machine learning (ML) and artificial intelligence (AI) algorithms to price NFT in real time based on historical data, metadata and community data of NFT, represented by Banksea.

Banksea’s NFT oracle consists of two main components: Banksea smart contracts on the Ethereum and an off-chain network of AI nodes that caculate, process and transmit prices onto chain. The entire process is as follows:

1)    The user sends an NFT inquiry request, including the ERC-721 address on the chain.

2)    Banksea smart contracts record events and relay them to AI nodes off the chain.

3)    AI nodes receive the request and start to call external API data.

4)    AI nodes calculate the predicted price and risk score based on the API data.

5)    The AI nodes return the result to the on-chain smart contracts.

6)    The smart contracts reach a consensus based on the response results of different AI nodes and send it to the user.

In Banksea’s model, risk management is the most core module. The whole module is divided into 5 layers: data layer, label layer (risk index), machine learning layer, AI layer and application layer. Banksea’s data comes from four sources: NFT transaction data (Opensea), social media data (Discord/ Twitter), on-chain data (Etherscan) and lending data (Banksea lending platform). The final algorithm outputs four key indicators: ex-ante risk indicator, forecast price, lending rate and ex-post risk indicator.

As seen in the early development papers of Banksea, the following three formulas were used to price NFT. The price of NFT (P) is calculated by a function (f), which contains two quotientsthe risk score (R) and the innovation score (O). The risk score and innovation score are calculated based on transaction data, mortgage data, on-chain data, social data and so on.

So, what about Banksea NFT oracle driven by algorithm? It is debatable.

When it comes to algorithmic pricing, many analysts worry about models not being trained on massive data, but that’s not the root of problem. From the perspective of theoretical philosophy, the NFT prices under ML/AI algorithm cannot meet the accuracy requirements. Because the essence of competitive markets is the product of human free will, and non-determinism is the prerequisite of human free will. The market economy is not like a clock, where each instant determines the state of the next instant. To be more precise, the market economy does not fully satisfy the law of causality, which means that “if we know the present with certainty, we can predict the future”. Because market economy conditions are filled with a large number of uncertainties, which will have a fundamental impact on the results, ML/AI models cannot quantify and incorporate all the influencing factors.

On the other hand, as revealed by the butterfly effect theory, small changes in initial conditions in a dynamical system can lead to huge long-term chain reactions in the whole system. ML/AI is based on massive data to achieve model training and then calculate the predicted price. If there is a small change in one of the market factors, the ML/AI model can end up with vastly different prediction from the actual result.

Perhaps Banksea developers are also aware of these problems. In the latest development document on their website, they have abandoned the precise calculation of NFT price but used the volatility of NFT price to determine the price range of NFT, as shown below:

So, can we optimize the performance of NFT oracle by switching to a price range method that allows for error? The answer is still no. As mentioned above, the price provided by NFT oracle must be a price with good liquidity.

The biggest problem of NFT price oracle driven by ML/AL algorithm is that there is “price without market”. At the price level caculated by ML/AL, users may not be able to successfully (or at low cost) liquidate or otherwise trade, which defeats the core role of the NFT oracle.

Therefore, the NFT price derived from ML/AI algorithm can only be used as the reference price, which can be applied in the field of trading decision and analysis but cannot provide quotes for DeFi scenarios such as lending and derivatives. That’s why Upshot, which is also following the ML route, is making the transition to an NFT Dashboard. Upshot appears to have abandoned the NFT price oracle in favor of two new products — Upshot GMI(An NFT wallet rating tool) and Upshot Analytics Beta(An NFT data Analytics platform). Banksea also stopped feeding AI nodes after April 2022, switched to the development of its data analytic service and metaverse project—CitizenOne.

3.2.2 Quotation Driven

As mentioned above, NFTs are not traded in large volumes in a specific period of time and the price of a single NFT cannot be used as a source for feeding NFT price oracle. So, can a large, high density of real quotes be used as a basis for NFT pricing? PawnHouse project represents such an attempt.

At present, PawnHouse has designed three quotation methods to create the “price corridor” of NFT through realistic and intensive quotation intervals. The three methods are Mortgage Loan & PawnTickets Circulation, Limited-Time Bidding and the SMRA (Simultaneous Multiple Round Auction), as detailed below.

As can be seen from the above, only the price corridor constructed by SMRA can satisfy the NFT + DeFi scenario and really serve as the feed price source of NFT oracle. In order to ensure the authenticity and rationality of the quotation, PawnHouse stipulates that the winner must buy NFT at any time according to their quotation. Thus SMRA quotations can act as “last traders” for NFT, providing liquidity at any time. The price corridors obtained by the remaining methods do not provide liquidity and can only be used for data analysis and  trading decisions reference.

It is worth noting that with the help of auction theory, PawnHouse distinguishes between private value and common value. According to PawnHouse, private value merely reflects the value of NFT for a certain buyer, while the range of the majority bid reflects the “common value” of the NFT. Compared to the floor price, NFTS are more efficient in circulation and utilization. Therefore, in fact, PawnHouse uses the common value rather than the final transaction price as the pricing basis of NFT oracle.

Now let’s take a look at what is SMRA. Under this auction mechanism, all items are auctioned at the same time. SMRA consists of multiple auction rounds. In each round, buyers can make separate sealed bids  for one or more items. At the end of each round, the highest bid for each item will be announced and the starting price of next auction round will be 5% to 15% above the highest bid of the previous round. Buyers are required to bid at least a certain percentage of items in each round, otherwise they will be disqualified from bidding in future rounds. The auction will end when there is no higher bid for any item and each item goes to the highest bidder.

I believe that most readers seeing this explain can perceive the complexity of PawnHouse mechanism. It is too difficulty to accomplish. In reality, until Q2 2022, the project is still in the process of theoretical verification and far from reaching the engineering development stage. Here are some questions for this project developers to ponder:

(1) The necessity of SMRA is insufficient. It is believed that one of the main reasons for this project developers to choose this auction mechanism is that the auction theory won the Nobel Prize in 2020 and received high attention from the market. The main advantage of SMRA, however, is that it solves the problem of combined bidding among interrelated items. In NFT pricing, there is no problem of portfolio pricing between different NFTs, so why must SMRA be used to increase the design difficulty?

(2) motivation deviation to cause price distortion. In a normal auction, the purpose of bidding is to obtaining items; However, in the NFT oracle, the bidder does not get items after winning the auction, but more is to get the reward (PawnHouse provides the bidder with the token reward). The deviation of the quotation motivation will certainly bring the distortion of the quotation. For example, a bidder is unwilling to be “the last receiver” and deliberately quote low price, which inspires others to quote low price together. How to solve this problem has not yet been seriously considered.

(3) the timeliness of the NFT oracle. Under SMRA, the efficiency of quotation is bound to appear low. Especially in the circumstance of a price crash, clearing is urgent, how to solve this problem is worth further thinking.

3.2.3 Liquidity Driven

Since for NFTs, pricing and liquidity are two sides of the same coin. So can we get NFT prices indirectly by improving NFT liquidity? Currently, there are two main ways as following.

(1) ERC20 + AMM Method

An easy way to achieve liquidity is to be divided or convert NFT 1:1 into ERC-20 assets, then trading on the AMM. For example, in the NFTX project, NFTS are deposited in the NFTX vault and converted to vToken. The trading pair of ETH:vToken is set up on SushiSwap. As liquidity pool builds, vToken backed by NFT can be used to find “floor price”. The specific links in NFTX are as follows:

1)    Mint: When users add NFTs to a NFTX vault, different NFTs in the same set will be converted to the same vTokens at a rate of 1:1.

2)    Redeeming: The vToken can be redeemed an NFT randomly at any time (not guaranteed to be the original NFT held by the user), with a 5% redemption fee. In case of targeted redemption, an additional 5% fee is required

3)    Staking: In order to ensure the liquidity of vToken, 100% of the fee earned by the NFTX Treasury is paid to the pledge providers. Among this, 80% is paid to the liquidity providers (staking SLPToken on Sushi and locking for two days) and 20% to the inventory providers (staking vToken to the vault and locking for seven days);The pledge providers receive xToken (ERC20) as a proof of pledge.

Because the trading pair of ETH:vToken on the AMM have good liquidity, the floor price on the AMM serves as the feed price for the NFT oracle. However, the ERC20 + AMM solution still has the following problems:

First of all, there will be the problem of ” Bad Money Drives Good Money out of Circulation “, because the vToken on NFTX is random in the redemption of NFTS and placing high-class assets will bring a large loss, users will tend to place poor assets. Therefore, this route only solves the liquidity and pricing of the poor NFT.

The second problem is the security of the price oracle. Under this route, the liquidity in AMM is not deep enough and is vulnerable to market manipulation. On NFTX, the TVL of CryptoPunks vault is $18.61 million, while TVL of smaller NFTs such as UWU is only  $87,000.

(2) Liquidity Lock

Since the ERC20+AMM solution has some problems, is there a better solution? As we mentioned earlier, the price of NFT oracle is the price that can be cleared, so we need to provide a liquidity pool in which a certain number of stablecoin /ETH will be locked as the “last trader” when clearing, then the price provided by the AMM pool will become the source of feed for the NFT oracle.

Abacus proposes a new solution based on this idea, the actual price of the NFT is the amount of ETH that locked (pledged) in the corresponding pool by the liquidity provider. So how does Abacus work? Specific as follows:

1)    Creation of Trading Pool:

Unlike the ERC20+AMM solution, which requires custody of NFTs, the creation of a pool on Abacus Spot requires only a signature from the owner of the NFT as proof of existence and does not require a custody or pledge of NFTs.

2)    Transaction:

Users can buy positions in a given pool by locking the ETH for a period of time, and the sum of all positions determine the market valuation of the NFT. Unless new liquidity is added to the pool, valuation of NFT will decline as positions are unlocked and inactive.

3)    Pricing Mechanism:

It is called “Optimistic proof of stake”. Because liquidity providers lock their ETH for a given time, and the pool can be shut down and auctioned at any given time (when clearing occurs or NFT owner considers that the pool is overvalued).The auction revenues are distributed by FIFO (first in, first out).In other words, the auction revenues are first distributed to the 0-1 ETH position and then to the 1-2 ETH position. If the NFT is overvalued (the auction revenues are lower than the pool valuation), the junior position (the overpriced user) will bear the loss and the user will remove the risky position before auction. If NFT is undervalued (the auction revenues are higher than pool valuation), each position gets profit equally, encouraging users to buy junior positions before auction. Under this mechanism, a stable equilibrium “market price” will be finally formed.

4)    Incentive:

To encourage users to lock ETH in the pool, Abacus designed a complex incentive to reward participating users. As mentioned above, the existence of FIFO makes different positions face different risks. Therefore, the risk coefficient should be firstly introduced, and then the EDC (Epoch Distribution Credit) should be calculated according to the risk coefficient. Finally, the protocol token ABC should be distributed according to the EDC.

The “liquidity lock” designed by Abacus is satisfactory in terms of price accuracy, timeliness and security, and it is more refined in pricing — locking liquidity for each NFT valuation rather than quoting a floor price. But Abacus’s method has a drawback: capital inefficient. Staking would be better like Lido. It should be noted that Abacus has only just completed the method design at present, the specific technology implementation and liquidity operation need to be further observed.

4. Conclusion

As an important infrastructure of NFT market, NFT oracle is the crown jewel of NFT industry. From the design methods of various NFT oracles on the market at present, the conclusions are as follows

Although the traditional oracle route represented by Chainlink has excellent performance, it is only suitable for top NFT projects with good liquidity, which greatly limits the application of NFT oracle.

The biggest problem of NFT oracle driven by algorithm is the inaccuracy of price, so it can only be used as a reference for data analysis or trading decisions, and cannot be really applied in the field of DeFi.

NFT oracle driven by auction, although the accuracy and security in terms of the price is guaranteed, timeliness can not meet the market requirements, and it is difficult to deployed.

ERC20 + AMM is the easiest method to achieve, but due to the lack of depth of liquidity in AMM, the quotation is easy to be manipulated. The security problem is difficult to solve. In addition, under the effect of “Bad Money Drives Good Money out of Circulation”, only poor assets will choose this route, which naturally rejects high-quality NFT.

“Liquidity lock” is the most noteworthy NFT oracle at present, which can meet the requirement of price accuracy, timeliness and security. However, the need to lock in large amounts of capital leads to inefficiencies and must be accompanied by the necessary incentive programs and liquidity staking designs.


The information herein is not an offer to sell or a solicitation of an offer to buy any securities, options, futures, or other derivatives related to securities in any jurisdiction and its content is not prescribed by any securities laws. Any information, representations or comments contained herein should not be relied upon as advice to buy or sell or hold such securities or as an offer to sell such securities. The information herein does not take into account nor does it provide any tax, legal or investment advice or opinion regarding the specific investment objectives or financial situation of any person. While the information herein is believed to be accurate and reliable, Huobi Technology Holdings Limited (“Huobi Tech”) and its agents, advisors, directors, officers, employees and shareholders make no representation or warranties, expressed or implied, as to the accuracy of such information and Huobi Tech expressly disclaims any and all liability that may be based on such information or errors or omissions thereof.