Getting NFT data is hard
SimpleHash makes it easy
All the features you'd expect from an enterprise-grade NFT API
Full on-chain data
On-chain data is the information about the NFT actually stored on a blockchain network itself. This contains much of the basic information important for verifying the provenance of an NFT, including its contract address / token id, and its name and description.
Deriving this data from each event log on various chains is a challenge - on EVM chains for example, it requires parsing through hexidecimal logs and knowing which event topics correspond to which type of NFT transfer. SimpleHash provides all of the relevant on-chain data in its response bodies, standardized across different chains and ecosystems.
Comprehensive NFT metadata
Only having access to on-chain data can be limiting. To be able to provide richer detail about a specific NFT (e.g., the traits, attributes, or raw metadata associated with it), it is necessary to access and download the NFT metadata, which is usually stored off-chain (frequently on a decentralized storage solution such as IPFS or Arweave).
Having this metadata is particularly important for applications such as game NFTs, as the extra traits and attributes could play an important part in the gameplay dynamics. There are many different metadata formats, and parsing them in a consistent way is a huge challenge.
SimpleHash accesses, downloads, and normalizes the metadata for all NFTs, and includes it conveniently inline with each response.
CDN cached media and previews
NFTs are most strongly associated with their media file (still most commonly a jpeg, png, or svg image) - and these are usually also stored off-chain, given the expense of saving data on a blockchain.
Serving up this media in a timely way is a challenge, given that the decentralized stores that many NFT media files are stored on are slow, throttle, or frequently timeout. Media files are also often saved with mismatched file or mimetypes to the actual media, or are saved as zips requiring further checking and correction. Plus, accessing a decentralized store such as IPFS usually requires extra steps, such as going through a gateway.
Some NFT media files can be very large (on the order of dozens or hundreds of megabytes), leading to a poor or inefficient experience when downloading over a mobile or slow connection.
SimpleHash makes dealing with NFT media more pleasant. We cache all NFT media on our own CDN, providing faster and more consistent access than would be possible from the original source, and negating the use of a gateway. We also provide image previews in multiple sizes, leading to a better experience on mobile or space limited devices. These links are conveniently provided in the main NFT response body. We also include blurhashes, which are useful preview images that can be used as a stand-in for larger media files while they’re still loading. And, we convert SVG images to PNGs in their previews, which helps with compatibility issues in some device frameworks.
Sales and Transfer history
Often it’s important to know more about an NFT than just its current state. Many applications have need of understanding the ownership history, and or the details around its historical sales. Reconstructing this history would be tricky and slow by only querying the blockchain, as in many cases you’d need to go back through the full block history to build up a complete understanding. Gaining insight into the on-chain sales details of an NFT is also a challenge, because it requires digging into the smart contracts that each marketplace uses to conduct sales.
SimpleHash has done the heavy lifting here, and with an easy query, a developer can get back the full transaction and sale history of a given NFT, a wallet, a contract, a collection. It’s also possible to query through the full transaction history of a given chain.
Where a transfer represented a sale event, we also include this information directly within the transfer response body. Each NFT response also provides information on the most recent sale event for that token, plus details on the value exchanged and the marketplace, where available.
Figuring out who actually owns an NFT, or getting more detailed insight into ownership of a given contract or collection can be hard. Some NFTs (such as ERC-1155s) might actually have multiple owners. Some applications need to build up a picture of the owners on a specific contract, or get insight into the collections and tokens held by a given wallet. Manually querying and indexing all of the transfer information on a given chain, and keeping it up to date is resource and time-intensive.
SimpleHash provides a set of easy to use endpoints for this purpose. Using the Owners by NFT or Owners by Contract endpoints, developers can get a quick snapshot of the current wallets currently holding NFTs for those tokens or contracts. With the Ownership Summary by Wallet endpoint, they can create token-gated experiences, or perform NFT analytics by getting a rapid summarization of the contracts and tokens held in a given wallet. And the Collections by Wallet provides this insight at the Collection level.