One of the things I love about CryptoPunks is that the story is still being written. New things happen all the time, but also sometimes we learn things that change our understanding about what has led up to this point. 8 years later, there are still things to be uncovered and surprises to found if you happen to turn over the right rock. If you think you know the story of the claim and airdrop, sit down because it’s about to be rewritten. (The following is a slightly modified excerpt from my forthcoming book PUNKS: NOT DED which should be shipping next month, June 2025. Pre orders and a few limited edition hard covers are still available.)

On June 23, 2017, at 9:50 AM New York time (1:50:51 PM UTC), Larva Labs deployed the new “CryptoPunksMarket” contract, marking this a pivotal moment in crypto art history. The distribution process began immediately after deployment and would take almost six hours to complete. Until now the story was that Larva Labs reverted all transactions on the V1 contract, and claimant wallets received the airdrop. However, while discussing final edits on the book niftynaut and I discovered something curious. Punk #4638. This punk is sitting in a long inactive wallet, the V2 was airdropped to it and the V1 is there as well. OK, sounds right so far, clearly a claimer wallet right? Wrong. Wait what?

On June 13th, Tony Herrera claimed Punk #4638 with his primary wallet. 3 hours later he transferred it to a new wallet. 10 days later on June 23rd Larva Labs sent the V2 airdrop to this new wallet, not the wallet he claimed with.

How could this be possible if as we had previously understood claimer wallets, not holder wallets, received the airdrop? We started digging and found punk #4958, another punk claimed by Tony. Same thing here, he claimed it with one wallet, transferred to a new one, the airdrop went to the new one. Then we found another, and another. This wasn’t an exception or a mislabeled transaction on etherscan, this was clearly the intended action. Larva Labs never explicitly explained their process and it was notoriously hard to understand at the time, but since 2017 the general understanding was that all transactions were reverted, and claimer wallets were airdropped V2 punks. Looking at this now with better tools and insight, it seems that only sales were reverted, but all the transfers (which might have been trades, direct sales, or simply wallet moves) were honored. 

Of the approximately 300 transactions on the V1 contract before the V2 contract was deployed, less than 100 were sales. And 2 accounts (Hemba and LarvaLabs) were involved in almost 3/4ths of those. So the actual number of “impacted” wallets is considerably smaller than many of us thought. Keep this in mind – at the time there was no real way to see NFTs in your wallet, so the way you knew which punks you had was to look at the Cryptopunks website and look at your account page. Along with the airdrop, Larva Labs updated the website to look at the new contract. If you looked at your account page on June 22 you saw your punks, if you looked at your account page on June 24 you saw your punks, and unless you were on one end of the ~100 punks that were sold before the V2 contract was deployed, those looked like the same punks. If you’d sold some punks, you had them back again. If you bought some punks, you didn’t have them anymore. Some people who noticed asked about it, and most of those cases were resolved quickly and quietly, but many people didn’t even notice it.

This also creates a provenance issue, only the V1 contract has the correct claim history, who claimed what and when. The V2 contract shows all punks “claimed” on the same day as well as misattributing the claim wallet for the ~200 or so punks that were transferred (not sold) before the V2 contract was published. So to get the full and accurate details for any punk both contracts need to be looked at. If we revisit #4638, looking only at the V2 contract (and the current corresponding front end) we’re told 0x400946 claimed this punk on June 23rd, 2017. We know that June 23rd was the airdrop, not the claim, but until now the assumption has been that this info was still correct and 0x400946 was the claimer sometime between June 9th and June 23rd as well, though we’d have to check the V1 contract to get the exact date. But we now know #4638 was actually claimed by 0xfaf4a3, not 0x400946 so to get the accurate provenance for any punk, both contracts need to be considered.