Supported media types
For tokens that support recognized NFT contracts, the original metadata and media links will always be provided in each response. For convenience, SimpleHash also provides cached preview versions of media files associated with an NFT. Listed below are the supported media formats, and how to handle each media option.
If there is a specific or custom format that you require support for, please reach out to [email protected].
Cached Media URLs
SimpleHash caches and saves the media files of all NFTs on the indexed chains. If an NFT has an image / media file cached on the SimpleHash CDN, it will appear in the following format, with one or all of the fields image_url
, video_url
, audio_url
and model_url
: <https://cdn.simplehash.com/assets/c95...12f7.png
>.
In rare cases, only the original media links are available. Original media links (e.g., in the response on the image_original_url
field within extra_metadata
are usually returned as either base64 format (e.g., data:image/svg+xml;base64,PHN2Z...
), in which case they can be rendered directly, or as an external link (e.g., ipfs://QmbAhtqQqiSQqwCwQgrRB6urGc3umTskiuVpgX7FvHhutU/8667.png
).
In the case of an IPFS link, you have the option of appending an IPFS gateway to serve the image (such as https://ipfs.io/ipfs/), which will result in a link similar to this: <https://ipfs.io/ipfs/QmbAhtqQ...hutU/8667.png
Media Previews
For most NFT responses, SimpleHash provides preview versions of the relevant media file within the previews
field. These are a set of URLs linking to resized preview images of the media, including an opengraph image, and blurhash, where available.
All previews will be translated to one of jpeg, png or gif formats. When generating previews of SVGs, images are converted to png format for improved compatibility. Videos and 3D models will also be converted to png.
Previews are sized to fit the maximum dimension in pixels as follows: (small: 250px, medium: 512px, large: 1000px).
- Previews will also include a version sized for Open Graph, found on the field
image_opengraph_url
- The sizing of the preview image can be customized further by alterting the numeric value of the suffix
=s{number}
on the URL (for example:<https://lh3.googleusercontent.com/5Dli5GOSLNg6YYAFiXhEREwDdSH3LToRrMQu5xrgxAAeDd9pzJhNM1-yACxGkWpwrQ_m7GjvJHGDQiTjWncH6srQn-LKyHBGUHM=s900
>) - For additional media transformation options, check out [this Stack Overflow post](https://stackoverflow.com/questions/25148567/list-of-all-the-app-engine-images-service-get-serving-url-uri-options
Metadata and Media refreshing
SimpleHash provides automatic refreshing of metadata and media across supported chains, to avoid content (such as dynamic NFTs, or new drops or reveals) from going stale.
- On Solana, any change to the token metadata account will trigger a refresh
- On EVM chains, certain on-chain topics will trigger refreshes, including the following:
"0x6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b", # URI(string,uint256)
"0xe3df41127db820c79e5b8d541a63e40e3e97b9af96f7a50bded13091b70df9ae", # TokenMetadataURIUpdated(uint256,address,string)
"0x702fe2dc2dc0f68023540aa4a1e11811c0f29112f6ebf01e61b90538e4f29810", # TokenURIUpdated(uint256,address,string)
"0xf8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7", # MetadataUpdate(uint256)
"0x6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c", # BatchMetadataUpdate(uint256,uint256)
"0x6df1d8db2a036436ffe0b2d1833f2c5f1e624818dfce2578c0faa4b83ef9998d", # event TokenURIRevealed(uint256 indexed index, string revealedURI)
- SimpleHash also employs other heuristics, and tracking of events on marketplaces to trigger automatic refreshes
- Manual refreshes of contracts are also available on request via this endpoint
Supported original media formats:
All Chains:
- image/bmp
- image/gif
- image/heic
- image/jp2
- image/jpeg
- image/png
- image/svg+xml
- image/tiff
- image/webp
- image/x-icon
- image/x-ms-bmp
- model/gltf-binary
- model/gltf+json
- video/3gpp
- video/MP2T
- video/mp4
- video/mpeg
- video/ogg
- video/quicktime
- video/webm
- video/x-flv
- video/x-m4v
- video/x-matroska
- video/x-ms-asf
- video/x-msvideo
Lens Protocol and Bitcoin Ordinals specific:
- text/html
Bitcoin Ordinals specific:
- text/plain
- application/json
Supported without preview images:
- application/pdf
- audio/amr
- audio/flac
- audio/midi
- audio/mp4
- audio/mpeg
- audio/mpegapplication/x-tar
- audio/ogg
- audio/x-aiff
- audio/x-hx-aac-adts
- audio/x-m4a
- audio/x-mod
- audio/x-mp4a-latm
- audio/x-unknown
- audio/x-wav