Skip to content

Drop Metadata Renderer

Metadata rendering contract for NFTs with individual media assets

This contract is in charge of managing and rendering the metadata for Zora drops. A drop is an NFT collection where all the NFTs have individual media assets.

Whenever a tokenURI is called on an NFT contract it is forwarded to this contract to get metadata for a specific NFT.

View the source contract code here and the list of deployed contract addresses here.

  • baseURI: A common base path that all the assets share and can append the tokenId to the end to get the metadata for an NFT.
  • contractURI: A resource for getting metadata for the contract. Follows the contract-level metadata format described here.
  • provenanceHash: A hash that is used to prove that the order of the images and metadata was set pre-mint, and was not manipulated.
  • target: The address of the NFT contract to get data for.


Updates the baseURI and contractURI.

function updateMetadataBase(
    address target,
    string memory baseUri,
    string memory newContractUri


Updates the metadata base URI, extension, contract URI and freezing details.

function updateMetadataBaseWithDetails(
    address target,
    string memory metadataBase,
    string memory metadataExtension,
    string memory newContractURI,
    uint256 freezeAt


Updates the provenance hash stored in the contract.

function updateProvenanceHash(address target, bytes32 provenanceHash)