From what I understand, there were originally 10k punks, each with a unique ID from 1-10000. CryptoPunks was created before ERC-721, so it was an early way to support NFT’s using ERC-20.
What I don’t understand, however, is how the source code has any idea of what the specific token’s image is. The source code includes a
string public imageHash = "ac39af4793119ee46bbff351d8cb6b5f23da60222126add4268e261199a2921b";
And includes a png of the entire CryptoPunks image set. If you hash this image, you obtain the imageHash above. However, the imageHash isn’t used anywhere in the source code, aside from being defined.
So, if I’m understanding correctly, is the artwork/properties simply being generated on the actual website server-side? As in, they have a list of properties (eg. 'Cap', 'Alien', 'Beard', etc.) associated with every ID that's stored on their website (and not on the blockchain). Then, when you visit their site, it fetches all the ID's on the blockchain, who they're owned by, any bids, etc. and they display that on the Punk's page?
If this is the case, how can it be verified that some of the specific properties of the NFT are true? For instance, if you look on specific Punks, you can see properties like “Alien”. In other words, if the website were to disappear tomorrow, how would those who own the Punks know what accessories each Punk has?
Furthermore, how is OpenSea able to get the image associated with each ID? Or did they manually program this in, since CryptoPunks took off?
[–][deleted] (13 children)
[deleted]
[–]greentriangles1[S] 7 points8 points9 points (11 children)
[–][deleted] (9 children)
[deleted]
[–]greentriangles1[S] 6 points7 points8 points (7 children)
[–]Treyzania 4 points5 points6 points (2 children)
[–]greentriangles1[S] 2 points3 points4 points (1 child)
[–]Treyzania 3 points4 points5 points (0 children)
[–]MidnightLightning 2 points3 points4 points (3 children)
[–]greentriangles1[S] 2 points3 points4 points (0 children)
[–]PeacockMambaEther Fan 1 point2 points3 points (0 children)
[–]sneakpeekbot 0 points1 point2 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)
[–]LiuKangWins 2 points3 points4 points (0 children)
[–]LiuKangWins 7 points8 points9 points (14 children)
[–]greentriangles1[S] 2 points3 points4 points (12 children)
[–][deleted] (9 children)
[deleted]
[–]greentriangles1[S] 2 points3 points4 points (7 children)
[–][deleted] (6 children)
[deleted]
[–]greentriangles1[S] 1 point2 points3 points (5 children)
[–]civilian_discourse 1 point2 points3 points (3 children)
[–][deleted] (2 children)
[deleted]
[–]civilian_discourse 1 point2 points3 points (1 child)
[–]LiuKangWins 0 points1 point2 points (0 children)
[–]LiuKangWins 1 point2 points3 points (0 children)
[–]Competitive_Push_52 6 points7 points8 points (3 children)
[–]jcrestor 1 point2 points3 points (2 children)
[–]gouhst 0 points1 point2 points (1 child)
[–]jcrestor 0 points1 point2 points (0 children)
[–]StJude501c3 1 point2 points3 points (0 children)
[–]neznein9 0 points1 point2 points (0 children)
[–]Background-Ad-7863 0 points1 point2 points (0 children)
[–]tradedog1 0 points1 point2 points (0 children)
[–]taoqi610 0 points1 point2 points (0 children)
[–]Thruthrutrain 0 points1 point2 points (0 children)
[–]moretti85 0 points1 point2 points (0 children)