CryptoPunksData Punks Activity Owners Config {{ coinbase ? ensOrAddress(coinbase, 16) : 'Connect' }} Warning: This is experimental unaudited software. Revoke permissions when not required, at this early stage. Please install the MetaMask extension, connect to the Ethereum Mainnet and refresh this page. Then click the [Connect] button on the top right. {{ modalPunk.punkId }} {{ slugToTitle(attribute.value) }} {{ ensOrAddress(indexToAddress[modalPunk.v1.ownerIndex], 42) }} Yes No {{ ensOrAddress(indexToAddress[modalPunk.v2.ownerIndex], 42) }} Yes No {{ modalAddress.address }} {{ modalAddress.name }} {{ modalTx.txHash }} {{ formatTimestamp(modalTx.timestamp) }} {{ commify0(modalTx.tx.blockNumber) }} {{ ensOrAddress(modalTx.tx.from, 42) }} {{ ensOrAddress(modalTx.tx.to, 42) }} {{ modalTx.functionCall.name }} {{ formatETH(modalTx.tx.value, 0) }}Ξ, {{ settings.reportingCurrency }} {{ commify2(modalTx.valueInReportingCurrency) }} @ {{ modalTx.exchangeRate }} {{ commify0(modalTx.txReceipt.gasUsed) }} / {{ commify0(modalTx.tx.gasLimit) }} {{ (modalTx.txReceipt.gasUsed/modalTx.tx.gasLimit*100).toFixed(0) + '%' }} {{ '@ ' + formatGas(modalTx.txReceipt.effectiveGasPrice, 2) + ' gwei' }} {{ formatETH(modalTx.txFee, 0) }}Ξ, {{ settings.reportingCurrency }} {{ commify2(modalTx.txFeeInReportingCurrency) }} @ {{ modalTx.exchangeRate }}
Sync
Dev
{{ sync.total == null || sync.total == 0 ? (sync.completed + ' ' + sync.section) : (sync.completed + '/' + sync.total + ' ' + ((sync.completed / sync.total) * 100).toFixed(0) + '% ' + sync.section) }}
{{ filteredSortedPunks.length + '/' + punkAttributes.length }}
{{ filteredSortedActivity.length + '/' + Object.keys(txs).length }}
{{ filteredSortedOwners.length + '/' + Object.keys(owners).length }}

Welcome

This dapp retrieves historical log events from the CryptoPunks contract on the Ethereum mainnet, collates the data, and provides an interface for users to query the data. This dapp currently takes about 10 minutes to retrieve the data initially, and about a minute to sync subsequently.
How This Works
  • Event logs are retrieved via your browser's web3 connection for the CryptoPunks V1 and V2, and Wrapped CryptoPunks V1 and V2 contracts
  • Block timestamps are retrieved from the https://api.thegraph.com/subgraphs/name/blocklytics/ethereum-blocks subgraph API endpoint
  • Exchange rates are retrieved from https://min-api.cryptocompare.com. Get your API key here and enter it in the Config page (some free initial queries without the API key)
  • The resulting data is collated and presented in this dapp
Requirements
  • This dapp runs in web3 enabled desktop browsers connected to the Ethereum mainnet
References
  • Dapp: https://bokkypoobah.github.io/CryptoPunksData/
  • GitHub: https://github.com/bokkypoobah/CryptoPunksData
  • Main Dapp Source Code: https://github.com/bokkypoobah/CryptoPunksData/blob/master/docs/index.html
Running Locally
  • In a folder on your computer, git clone https://github.com/bokkypoobah/CryptoPunksData
  • Run a tool like anywhere in the ./docs subdirectory of the folder created above
This Dapp Design
  • Addresses and transaction hashes are stored as integer indices into lookup tables to save on memory and computations
  • 10k 24x24 punk images were split from the original punks.png using the 01_splitImage.js script
  • 10k punk attributes were extracted from the CryptopunksData contract at 0x16F5A35647D6F03D5D3da7b35409D65ba03aF3B2 using the 02_scrapeCryptoPunksAttributes.js script
Some Info
  • Three v1s were claimed with invalid ids 9845944, 76623 and 0xffff...ffff. This resulted in 3 unassigned v1s 1416, 1838 and 1841
  • LarvaLabs airdropped these 3 unassigned v2s 1416, 1838 and 1841 to 0x5b098b...
  • Two v2s 2838 and 5449 have been incorrectly transferred to the v2 CryptoPunk contract
Troubleshooting
  • If this dapp is not receiving the latest Mainnet data, reset your MetaMask web3 connection using Settings -> Advanced -> Clear activity and nonce data
{{ chainId == '1' ? 'Mainnet' : 'Unsupported' }} {{ '#' + commify0(blockNumber) }} {{ formatTimeDiff(timestamp) }}
gm, and enjoy! CryptoPunksData © Bok Consulting Pty Ltd 2023