Component that renders any asset stored on IPFS (or anywhere else), given the IPFS URI / URL.

If an IPFS url is given, the asset is fetched from IPFS through the thirdweb IPFS gateway by default. You can also specify a custom gateway URL using the gatewayUrl prop.

The mime type of the asset is determined and the appropriate component is rendered on the UI.

For example, if the URI points to an image, the img tag will be used. If it is a video, the video tag will be used, etc. The component currently supports:

  • Images

  • Videos

  • Audio files

  • 3D Models

  • SVGs (for on-chain NFTs )

  • iframe and HTML

  • If none of these are appropriate, the fallback is a link to the asset

The default size of rendered media is 300px x 300px, but this can be changed using the width and height props.

You can use thirdweb CLI to upload any file to IPFS and get the IPFS URI

npx thirdweb upload <path/to/file>


import { MediaRenderer } from "thirdweb/react";
const client = createThirdwebClient({ clientId: "..." });
function Home() {
return (