10,000 unique collectible characters with proof of ownership stored on the Ethereum blockchain.
What you see above are the 10,000 unique "CryptoPunks" in a map-like interface. No two are exactly alike, and each one of them can be officially owned by a single person on the Ethereum blockchain. Originally, they could be claimed for free by anybody with an Ethereum wallet, but all 10,000 were quickly claimed. Now they must be purchased from someone on the Ethereum marketplace contract. Via this market you can buy, bid on, and offer punks for sale. The zoomable image above is connected to the Ethereum network and has been colored to show you the status of every Punk in the market. Punks with a blue background have been claimed. Punks with a red background are available for sale by their owner. Finally, punks with a purple background have an active bid on them. You can click to zoom in on a Punk and reveal its details.
What is a CryptoPunk?
The CryptoPunks are 24x24 pixel art images, generated algorithmically. Most are punky-looking guys and girls, but there are a few rarer types mixed in: Apes, Zombies and even the odd Alien. Every punk has their own profile page that shows their attributes as well as their ownership/for-sale status (here's an example).
What exactly is going on here?
CryptoCoins were made famous by Bitcoin, but Bitcoin is designed just to transact and store ownership of Bitcoin itself. We are using a successor to Bitcoin called Ethereum which allows for arbitrary computer code to be executed on the blockchain and the results of the execution to be stored forever. This is pretty cool! Normally code is run on a server somewhere and you basically need to trust the person running the server. Ethereum lets everyone execute the code, show each other what result they got, and agree that the code was executed properly and fairly.
We have written code that lives on the blockchain that anyone can use to buy and sell Punks with anyone else in the world. An interesting aspect of this system is that we no longer have any control over the code running CryptoPunks! Once we released it onto the blockchain it became permanently embedded there and can no longer be modified by anyone. This is scary for us as developers because we worry about bugs, but it is also a very powerful feature of the system. It allows a user verify that there are indeed only 10,000 punks, check that we can't steal them from you, and basically make sure that everything we told you about the code is true.
How do I get a Punk?
The Easiest Option
- Download and install a Chrome browser plugin called MetaMask. This will allow websites (that you authorize) access to your Ethereum account.
- If you made a new account, buy some Ether. The MetaMask plugin has a button that will allow you to buy Ether from Coinbase.
- Once you have the plugin installed, this website will recognize it and add buttons that allow you to bid on, buy and sell punks directly in the interface.
- For example, you can buy Punk #6692 for 0.29 ETH ($65.62 USD).
The Harder Option
You can also do the following if you prefer to run a wallet on your computer:
- Download and install Mist which is basically a web browser for Ethereum apps.
- You will need to wait while the entire blockchain syncs to your computer (probably 10-20GB).
- You will also need to get some Ether, there should be a button in Mist that lets you buy some directly from CoinBase.
- Open Mist and load this website, press the authorize icon in the top right to allow the website to see your Ethereum account. Now you can buy and sell punks!
- The actual images of the punks are too large to store on the blockchain, so we took a hash of the composite image of all the punks and embeded it into the contract. You can verify that the punks being managed by the Ethereum contract are the True Official Genuine CryptoPunks™ by calculating an SHA256 hash on the cryptopunks image and comparing it to the hash stored in the contract.
- CryptoPunks are almost an ERC20 token. We support the methods that provide your balance so you can watch CryptoPunks as a token in your wallet and see how many you own. None of the other methods are the same since you're not transferring a simple balance, but need to reference which specific Punk you want to work with.
- The contract source and more technical details are available on Github.