Predicting CryptoPunk Prices: The Case for JPEGs
On inebriated Uber rides during Miami Tech Week back in the Spring, I’d amuse friends by showing them the latest posts from the CryptoPunks Bot on Twitter, asking them to guess what one of the “normal” JPEG NFTs was worth, and then a cool one, like an Ape, a Zombie, or at least something with 3D Glasses.
It’s amazing to think that a “floor” (normal, not so rare) Punk was selling for maybe 17 ETH back then, while the cool ones sold for something $300k. I still thought largely in dollars about Punks, back then.
It’s amusing to think that you could buy an Ape for 800 ETH six months ago, or even buy an Ape at all.
While this Ape would sell for much more than that 800 ETH now — someone bid 2,200 ETH on it last week, a lowball bid that was rejected — it’s the floor punks that have appreciated most, especially over the past few days. (I write this August 31, 2021.)
While Punks traded for 20 ETH or less in the Spring, and you could snag one for under 30 ETH a week ago if you weren’t picky — the lowest Punk currently on offer is 119 ETH, according to the Larva Labs website.
That 119 ETH “floor” is down a bit from yesterday, when the lowest listed price was 140 ETH. I wouldn’t say the market has moved exactly, but those who bought Punks for single digit ETH in 2020, or just a week ago for < 50 ETH and are looking at 100%+ paper profits. You can’t blame some of them for cashing out. Especially those who aren’t in it entirely “for the art” or those who own multiple JPEGs.
According to public records on the blockchain, a user named “Pranksy” has bought and sold hundreds of Punks. He only own seven Punks at the moment, but he’s transacted in 500+ others, including Apes and Zombies. According to these Larva Labs records, he’s profited over $10 million (dollars) from flipping Punks. Most of it over the past year, while the rest of us were drifting off in Zoom meetings in our underwear.
What the heck is going on here? What makes these internet art projects so valuable? Who are buying these things — apart from speculators, pro poker players, and a few crypto-friendly celebrities? How big can this market get?
I’ll answer these questions in subsequent posts. Others have written well on these topics, though much of the best information is fragmented in various crypto Discords (NFT folk don’t care too much for Reddit), and in long, rabbling Twitter threads.
I’ll start by saying that the NFT market is real. For one thing, it’s massive. According to a reasonable estimate, the NFT space is pulling $200 million (dollars) from buyers a day. That’s not appreciation of assets. It’s largely in ETH gas fees — and also in “mints” of new digital art pieces. Rather than get into the details — let’s just say people aren’t paying hundreds of dollars in fees to the Ethereum network, per transaction, for something that they don’t deem much more valuable. $200 million in fees, per day, is an enormous market.
As someone close to this space — every day another brilliant and successful tech fren gets on board the NFT train (I won’t call them out here ) — NFTs are certainly the biggest category I’ve seen for commerce that’s crypto-native.
Whether or not Alex “Ape SZN” Wice is right (another brilliant ex-poker player ) NFTs are certainly the first asset I’ve thought about pricing natively in ETH. Heck we didn’t even add “dollar equivalent” to estimated prices on our site.
The site that we might as well get to now…
Pricing unique & rarely traded assets
Valuing NFTs is difficult, although not also not rocket science. The most valuable and popular NFT project — Cryptopunks — we’ll get into why it deserves its OG status later— minted 10,000 “CryptoPunk” JPEGs back in 2017. Starting a trend that’s been imitated many times since, the JPEGs are “computer generated” with each one unique, distinct a number of distinct enumerated attributes.
For examples, Punks are Male, Female, Ape, Alien or Zombie. The non-humans are more rare (just over 1% of all Punks) and also very cool. Hence they are valued at 10x more than the typical Human.
While each Punk is distinct, some like Punk #105 contain a dozen near-replicas. You can see his closest comp on our website, DeepNFTValue.com
This is all common sense. As in real estate, if you want to know what your Punk is worth, you would consider comps, and check what these comps sold for recently. However as in real estate, only 1–3% of Punks exchange hands, even in a pretty busy trading day. The Larva Labs website show public bids and offers for Punks — and while many of these are comical, the bids and offers do provide some information. Think of them as upper and lower bounds on the fair price, like any other exchange.
Teaching common sense, to a robot
After talking up Punks ever since those Tech Week Uber rides, I put by REPL where my mouth is, and coded up a machine learning model to estimate the daily values of all Cryptopunks.
Along with my project partner Zach Nussbaum, who built the website, we’re lowkey releasing these Cryptopunk price estimates to the world.
In follow-up posts, I will go deeper into the algos used to make these prices. For now I’ll provide a high level overview, point out a few interesting insights from the prices on the website, and point out some remaining weaknesses of the model.
I’m also planning to release the core machine learning code in open source. I certainly don’t plan to be secretive about how we model prices. In the past I’ve coded bots and simulators for playing, among other things. Never to play humans for $, but to play against humans and other bots for fun, learning, etc. I’ve not done a good job releasing those models in open source, so when I moved in, the work died along with my interest.
With this project, we’re aiming for transparency, and I’m curious what you, the reader and likely NFT enthusiast, will think of the approach we take with this problem.
The problem and high level solution, is simple: our model predicts tomorrow’s transactions, based on the Punk attributes (Male, Earring, Gold Chain, Top Hat) and the bid history ~ we use the past six months.
If a transaction does not take place, we still estimate what price the Punk would have sold for, had it been sold. Simple, supervised learning.
Along the way, I had to add some wrinkles to make the predictions more stable
- We use an inequality loss, considering both recent bids (minimum) and recent/live offers (maximum). A sale is where bids and offers meet.
- On the DeepNFTValue website, we show nearest neighbor similarity scores for all Punks. These are derived from the cosine distance of the learned Punk embeddings, based on their Attributes. We add a training loss to encourage Punk price proximity to their neighbors.
- We train a completely bid-less model to predict prices, only on the Attributes. This model is disconnected from the bid-aware model, but both are encouraged to imitate the output of the other.
- We don’t actually have a single graph, from which to predict tomorrow’s prices. We have daily snapshots, going back months, and can train the model to predict the next-day sales on all of those. I know this bleeds information between days. Trust me, it helps.
We want the model to:
- Learn long term relationships between Punk attributes and prices, including on a relative basis. If Top Hats and Cowboy Hats are both deemed positive Attributes, mutually exclusive, and worth about the same, such a relationship would persist even on days we had no bids on Cowboy Hats, and as the market is going up (or down?) overall.
- Reasonable estimates or Punks that never sell. The estimate needs to be grounded in comps, and overall market levels, not free to float entirely — even when there’s no sales, bids or offers from which to triangulate a price.
- Track the value of Punks and Attributes, over time. Graphs coming soon!
In other words, this is not a model to tell you if Hoodies will outperform Pilot Helmets between now and Christmas. It’s a “nowcasting” model to tell you what every punk is worth at the moment. Our prices aren’t always sharp, but I think we get the ballpark right, in all categories and on most individual pieces. Punks really do trade by Attributes, which helps. You do have occasional wrinkles like Punk #888 and Punk #8888 getting bid up to 888.8 ETH (why not Punk #88?). Our model sees the bids and does value these at more than their “fair comp” level but is not aware of their auspicious number IDs.
Price observations — August 31, 2021
The run-up in Punk prices ever since Visa bought and displayed a “floor Punk” on Monday — really has “swept the floor” so to speak.
Less than a week ago, Punks were occasionally selling for ~30 ETH but now all are valued at least 100 ETH, or just below.
What’s notable, however is that the 25%, 50% and 75% values are just 17 ETH apart — 113, 117, 130 as you can see in the chart. This suggests a supply shortage. People are paying “top Ether” to get into any Punk they can get. Borrowing another real estate analogy, in a hot market with limited supply — say NYC or Moscow condos before the bust — you’ll see the price of 1BR get close to those of 2BR apartments. You’ll see desirable “nice to have” attributes like good views and a high floor get bid down to a small percentage of the price. In a market with plenty of supply, the gap between a 1BR and 2BR widens, as does the premium for a high floor and a nice view.
Needless to say, the Apes, Aliens and Zobies are the penthouses of this Punk Co-op. They trade for different prices, largely among different buyer.
And those prices… have not really gone up very much. Our model estimates all rare Punk values to be between 2,300 ETH and 1,900 ETH. This seems like a narrow band, but tbh, it’s difficult to justify valuing rare Punks higher, when — apart from two suspicious 4,200 ETH Alien sales in March — the highest price ever paid for a Punk is 2,200 ETH!
Multiple 1,800+ ETH bids have recently been made recently, and a Zombie sold for 1,890 in a Fractional Art auction, but until we see bids in the 3,000 ETH band, no reasonable model can project such prices for an individual piece.
I can’t explain why the run has been on floor and average Punks and not the rarest categories. We only observe and report. Maybe the big NFT whales are buying rocks?
Hoodies vs Cowboys
Sadly for my friend, a Cowboy Hat enthusiast (contrarian move for a poker player), Hoodies are emerging as the most valuable Human attribute.
Hoodies are neck and neck with Beanies at ~300 ETH median value, despite Beanies being much rarer. Top Hat, Pilot Helmet and Tiara, are all seen as more valuable head coverings than Cowboy Hat at the moment, although all are in the same ballpark, a tier below Hoodies and Beanies.
While most Cowboys are HODL’ing their JPEGs and not taking this bs sitting down, a couple have gotten paper hands and sold. Two Cowboys traded saddles on August 28th, for 199 ETH and 280 ETH.
I don’t think our price estimates are way off. Although overall, the estimates are probably a bit low. We’ll see if the market sells off a bit early this week. And if not, price estimates will continue to rise as the model finds it’s consistently under-estimating transaction values. The neural net will make adjustments.
Don’t cancel the Punks
Going into this exercise, I was concerned we may discover the market to be biased against darker-faced Human Punks. While we’ve not studied this thoroughly, I think you can browse the price estimates, or recent sales, and notice that this is broadly not the case.
The while the “utility” of a Punk flexing it in your profile picture (easy at $500 or $20,000, different when floor punks are 100 ETH). But at this point collecting Punks is about way more than getting a 24x24 JPEG that looks a little like yourself.
Future Projects
Our immediate goals are:
- keep updating the website with current prices
- start running the model back in time and showing some historical values
It would be cool to document how the price of individual Punks, floors and Attributes have changes, just in the past 6–12 months when most people first started warming up to the project.
Our model architecture should also transfer pretty directly to any other 10,000 JPEG project, with shared attributes and public exchange ledgers. After all it’s just a neural net, based on prices and enumerated attributes. No feature engineering or human adjustment.
I am a less knowledgable about BAYC than Punks, but many of my friends are enthusiasts, and it’s something we should look into at soon. I’ve heard it’s a wonderful community.
Disclaimer
This is not investment advice. Our estimates are for entertainment purposes only. Please ape responsibly. Only bid on projects that you like, with ETH that you can afford to part with.