I do not recognize the v1 tokens as punks. Sure, they were called “punks” for two weeks, and then the consensus moved over to the upgraded contract. I also believe that in order for a token to be a “punk”, it needs to belong to a contract with a fully functional 0% fee marketplace.
This is all that you need to read here. If you would like to read more about how I came to this conclusion, please continue reading below.
The definition of a cryptopunk token
What makes a Non-Fungible Token (NFT) a cryptopunk token? It’s a smart contract deployed to the Ethereum blockchain with the following properties:
- Deployed by LarvaLabs in 2017 (by the Larva Labs address 0xC352B534e8b987e036A93539Fd6897F53488e56a)
- Contains a hash of the punks.png image. It also contains all the methods of the “CryptoPunks interface” for transferring and trading the non-fungible tokens.
- Has no owner, and is fully autonomous.
- Contains a built-in, fully functional, 0% fee marketplace.
There is only one smart contract that fits the definition. It is the contract deployed at address 0xb47e3cd837dDF8e4c57F05d70Ab865de6e193BBB
The v1 contract does not fit the definition, since it doesn’t have a fully functional marketplace. Therefore, a v1 token is not a legitimate cryptopunk token.
The contract deployed at 0xb47e shall be referred to hereafter as the Canonical CryptoPunks Contract.
Consensus, and abandoning of the v1 contract
The v1 tokens were called the “CryptoPunks” for two short weeks, until a bug in the v1 token contract was discovered. The bug prevented the v1 tokens from having a fully functional marketplace. This is the reason why Larva Labs deployed a new smart contract, and encouraged everybody to move to it.
At any given point in time, there is always “rough consensus” between the community members, who hold the tokens, about what contract address is the CryptoPunks contract. Moving to a new token contract means that consensus changes about what address is considered as the canonical “CryptoPunks” contract. Given the decentralized nature of the blockchain, consensus can change, often with total agreement of all the participants, and especially in the form of upgrades.
The blockchain history doesn’t lie: There is indisputable evidence that consensus about what is a “cryptopunk” token shifted from the v1 contract to the canonical contract, without any disagreement or dispute. The old v1 contract was abandoned, except for the few transactions that were made to remove stuck ETH funds.
Here is a screenshot of the v1 contract transaction history shortly after the canonical contract was deployed:
The final transaction of 2017 to move a v1 punk, was on September 28, 2017. Since then, the v1 contract was abandoned by the cryptopunks community, except for the few transactions to remove stuck ETH. The v1 tokens were not touched, until around late 2020. Meanwhile, all token trading activity was exclusive to the canonical contract.
(There’s also evidence that some punk holders exploited the bug in the v1 contract to steal some v1 tokens. Perhaps I’ll write about this in another article)
Some arguments and their counter arguments:
Argument: The v1 is like the “1st edition” or the “error print”, it should be called “The CryptoPunks”.
Response: There was no “error print” or 1st edition of the cryptopunks artwork itself. There is one 1 version of the cryptopunks artwork. The canonical contract represents the 1st and only edition of the artwork. By “canonical”, I mean the upgraded contract that has a functioning market. See the “definition of a cryptopunk token” above.
Argument: In the Solidity Source Code, the v1 contract’s “class” was called “CryptoPunks” while in the canonical CryptoPunks Solidity source code, the class name is “CryptoPunksMarket”. That means v1 is the Cryptopunks.
Reponse: Wrong, for two reasons. First, this is just a class name to the Solidity source code, but the source code does not get saved on the Blockchain. What gets saved is the bytecode and the state-data. When you query the name
property of the canonical CryptoPunks contract state, you will find that it returns the string “CRYPTOPUNKS”. Second, as I’ve established above, a CryptoPunk token can be known as a “CryptoPunk” if it contains full functionality of the market .(See the “definition of a cryptopunk token” above.).
Argument: The v1 tokens will always have value.
Response: I am not discussing the value, the price or the hype. There is some deeper philosophy about it, like what makes a “cryptopunk” token a cryptopunk token? I think that if something is to exist as a cryptopunk token, then it must have a proper functioning marketplace built in. This is the very reason why the v1 token was abandoned after two weeks.
Argument: The v1 contract also contains the hash to the punks.png composite image, which is pointing to the artwork. Therefore, it points to the artwork.
Response: I think it’s the other way around. The artwork points to the contract, not the contract points to the artwork. The pointing is set through social consensus, which is initially set by the artist. (The hash in the contract is just a way of storing the images off-chain). The hash is just a method of storing the image off-chain.
Argument: The v1 tokens maintain the “pure” artistic function and the initial vision of punks.
Response: This doesn’t make any sense as there is only one version of the artwork. There is no “pure” or “initial version” of the artwork. Unless you consider the contract also to be a part of the artwork. However, if that’s the case with the cryptopunks, then there is only a single contract where the artwork exists in its complete and intended form. (Even the v1 contract itself wasn’t the artist’s vision for punks since the artist obviously didn’t intend for the marketplace to be broken).
What’s the future for V1 tokens?
The CryptoPunks had a lasting influence on the NFT cultural movement, which included a large price appreciation of the tokens. Unfortunately, this has motivated a small group of people to promote the v1 tokens. (This effort appears to be profit motivated).
Therefore, I believe that the v1 tokens should be categorically rejected and resisted as much as possible, and the wishes of the artist should be upheld.
It is my opinion that the original wishes of the creator of the NFT matter the most. This is not about decentralization or centralization, since the creator can renounce ownership of the NFT contract, which is what Larva Labs did. However, the only reason why we associate the artwork with the token is because the creator said so, and we all agreed to it.
As collectors, we should all make sure that the original wishes of the creators are never censored or forgotten, that they are passed on unaltered and always stay true to the intentions of the artist who created the artworks. The more decentralized, the stronger the wishes of the artists will hold.
It also doesn’t matter what the artist (LarvaLabs) or the copyright holder (YugaLabs) or a few other people (including myself) say today. They do not control the cryptopunks tokens, expect for the tokens that hey hold in their wallet. If say, LarvaLabs or YugaLabs came out today and decided to change or influence consensus, then we must resist that too.
Appendix
Larva Labs explaining the “migration of data” from the old contract to the new contract https://www.reddit.com/r/ethereum/comments/6k8khu/call_it_a_toy_but_this_is_a_window_into_what/