What is GoPricing?

GoPricing is an NFT pricing service powered by machine learning. The beta version of GoPricing covers over 1000 collections(including most valuable collections) and reaches more than 90% accuracy.

To get early access to the GoPricing Service, you will need an API key, which you can get by filling out this form. If you have any questions or feedback, please reach out on discord or email ([email protected]). Please note that this service is still in beta testing, and we cannot guarantee its availability or stability at this time.

Why Do We Need Pricing?

NFT assets are different from fungible tokens like BTC, which always have a real-time transaction price that can be directly used for their pricing in financial services such as lending and mortgage. But each NFT based on the ERC-721 protocol is unique, and they have a separate price. This non-fungible feature leads to the problem of low liquidity. NFT transactions are infrequent, making it impossible to obtain their real-time prices like fungible tokens. Pricing NFTs requires using other methods.

In the traditional way, NFT price is estimated by floor price or the last sold price. If using floor price, the premium for traits is ignored, which harms high-rarity NFTs. If using the last sold price, the price is prone to be outdated due to the NFT's low liquidity problem. These pricing methods do not provide a reasonable price, greatly limiting the liquidity of NFTs and hindering the development of NFTfi. To accurately price NFTs, a machine learning method is necessary.

Why Machine Learning?

Reasonable NFT pricing can be seen as composed of two parts: the value of the collection and the value of the traits. A good way to anchor collection value is floor price. It is real-time and relatively reasonable, and it is difficult to be manipulated by individuals. The value of traits can be learned by machine learning. The number of traits is far less than that of NFTs, and using machine learning methods, the mapping between traits and their premiums can be learned from transaction history.

Thus, such a new machine learning method solves the problem brought by traditional methods. It can provide real-time and trait-considered pricing. Why use GoPricing?

Floor Price Based Framework

The GoPricing machine learning framework is based on the collection floor price. It uses the collection floor price as a pivot for the basic value of a collection. Then it learns the relationship between sale price and traits using machine learning models. The goal is to find the trait premium according to transaction history. NFT pricing can be seen as the sum of the collection basic value and trait premium. This floor price-based framework is suitable for any regression model. Normally, gradient boosting models perform well in this small data scenario.

Compared with other pricing models without floor prices, GoPricing is always real-time because the floor price in the framework provides a real-time baseline. This is especially useful in markets with extreme price changes.

Trait Embedding

NFT traits are sparse and discrete variables, making it challenging to use them effectively in the model. A straightforward approach is to use one-hot encoding, where each trait value is represented by one dimension. The dimension of the trait embeddings is the sum of all trait value numbers.

(The dimension of the trait embedding is 33+55+56+73+45+3 = 265)

(The dimension of the trait embedding is 33+55+56+73+45+3 = 265)

However, the trait vector after one-hot encoding remains sparse, requiring the use of embedding layers in the framework. Combining embedding layers with regression models can be further optimized with many methods in the field of machine learning.

Noise Identification

Extreme transactions can significantly impact NFT pricing, making it crucial to identify and filter out noise. For example, on December 1st, 2022, BAYC #3836 was sold for 16 ETH (, while the floor price of BAYC was 66.87 ETH. Such unusual sale prices do not reflect trading patterns and can hinder the accurate mapping between trait and price.

To reduce data noise, we use wash trading techniques and filtering rules to remove them. While these methods cannot entirely eliminate noise, they greatly improve accuracy.



One of the biggest challenges for NFT pricing is the rapid and volatile price changes. Traditional time-series based models struggle to estimate accurate prices from sparse transactions, as they predict prices based on the last several transactions, resulting in unstable pricing.

GoPricing solves this problem by using floor prices as the input to the model, which are always real-time. This results in real-time pricing as the output of the model, which can be controlled within 0.1 seconds. This is truly "real" real-time pricing.


We evaluate our model using MAPE (Mean Absolute Percentage Error), with smaller values indicating better results. For most collections, our model's MAPE is lower than 10%.

This is the GoPricing results for Bored Ape Yacht Club from December 1st to December 5th, 2022. The point at the top left of the diagonal line is suspected of wash trading, which results in lower prices. Excluding wash trading, you can see that the pricing is close to the actual transaction prices.


Please check the link for more details and information related to the NFT pricing application.