Following the last content, when I was looking up the metadata of NFTs, I found the contract of Cryptopunks is a little bit different. It does not contain ERC721 standard, and the metadata is storing in another way.
Before, I just knew the Cryptopunks is the very first NFT. It was originally ERC-20 token and made some change of the code. The change inspired ERC-721. The images are too big to be stored on the Ethereum blockchain, so initially only the SHA256 value of a composeted image is on-chain. Later, They have been wrapped into ERC-721 tokens so that they are tradable on NFT marketplaces.
In Aug 2021, for Bringing the Cryptopunk Images and Attributes On-Chain, CryptoPunk:Data was created to transfer and store the data. Interestingly, the images are stored in the way of SVG(Scalable Vector Graphics).

By querying #3100 punkImageSvg, I got the SVG of Cryptopunk#3100. I created a cp.svg file in terminal and put SVG into it.

Opened it in the browse it looked like this:

This way enables Cryptofunks to be fully on-chain, but it can only apply to pixels image.
Interestingly,the day(2021.8.18) Yuga Labs brought every cryptophunk fully on-chain is when the NFT summer started peaking.



Ref:
https://academy.binance.com/en/articles/what-are-cryptopunks

