2

I just noticed that the CryptoPunks contract does not implement any ERC standard, however it is properly parsed by third-party platforms such as Opensea and Etherscan, were they can understand these are tokens with names, symbols and all...

enter image description here

enter image description here

How can this happen?! Where are they getting all this data about the CryptoPunks?

And if this happens, what's the point of using these standards at all then?

1
  • 2
    For sure Etherscan interpret CryptoPunks transactions as it were a compliant token. Why? Because it is in their best interest supporting well known contracts. EIP are recommendations for implementors to create interoperable contracts. CryptoPunks, CryptoKitties and other tokens were created before the final EIP specs, so they are not be fully compliant, but since they are popular and well known many wallets/block explorers provide special support for them.
    – Ismael
    Oct 18 at 7:52
2

Etherscan hardcoded the CryptoPunks contact to show up that way.

Basically Etherscan is programmed this way:

If contract is CryptoPunks
  handleCryptoPunksSpecially()
Else If contract is CryptoKities
  handleCryptoKittiesSpecially()
Else If contract follows ERC721()
  handleGenericERC721()
Else
  itIsNotAnERC721()

And this is precisely why we need standards, so everybody does not need to to one-off programming like that.

1
  • If Etherscan had to do this hardcoding, does that mean OpenSea simply inherits Etherscan's hardcoding in turn, making it also hardcode Punks the same way that Etherscan does? If so, how is this 'transmutation' enacted on OpenSea's side? By the way, where does the pseudo-code you showed above appear exactly? could you link the .sol or .js file or other
    – user610620
    Nov 24 at 12:58
1

you just own or transfer to someone else wallet or use the contracts to sell your integer which represents the cryptopunk number on the "marketplace". they released the whole image hash of all cryptopunks in the blockhain. But it's a proof concept, not an nft. Now, if you have this whole image it's not that hard to "extract" the related crypto punk that corresponds to the integer, that's what has done opensea.

it was before the creation of nft.

4
  • But how can etherscan parse ERC20 and ERC721 tokens in a Contract not implementing these interfaces?
    – PedroD
    Oct 17 at 22:20
  • because of the Transfer event i guess. Oct 18 at 12:41
  • i mean ERC20 is a guideline but any app can catch events and get them without having to pay blockchain transaction fees, right ? Oct 18 at 12:42
  • ahm... what? ERC20, any standard is not just a guideline. Without any kind of standard, apps dont know how to communicate. Even the events, if you don't provide a standard for the types of events you fire, how can other apps know what events to capture, and how to classify them? Also, what do fees have to do with all of this? So, unless opensea is hard-coded for cryptopunks like some other user mentioned already, there is no way it can guess what events or transactions are what, and not even this contract does, unless you implement ERC20, ERC721 or ERC1155.
    – PedroD
    Oct 18 at 16:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.