Creating NFT - Opensea metadata works on Rinkeby, doesn't work on Mumbai

Using this tutorial - I’ve deployed the following smart contract to Rinkeby:

pragma solidity ^0.8.0;

import "";
import "";

contract NFTContract is ERC1155, Ownable {
    uint256 public constant ARTWORK = 0;
    uint256 public constant PHOTO = 1;
    constructor() ERC1155("{id}.json") {
        _mint(msg.sender, ARTWORK, 1, "");  
        _mint(msg.sender, PHOTO, 2, "");  
    function mint(address account, uint256 id, uint256 amount) public onlyOwner {
        _mint(account, id, amount, "");
    function burn(address account, uint256 id, uint256 amount) public {
        require(msg.sender == account);
        _burn(account, id, amount);

Everything worked and I was able to view my NFT on Opensea with image and metadata. I’ve tried to deploy the same contract to Polygon Mumbai, and the NFT is visible on Opensea, but there’s no metadata -

What could be the reason? It’s the same smart contract.

Hey @ApesTogetherStrong

Try to verify your contract

Hey @Yomoo, how can I do that?

you need to add the source code of the contract in the interface in

@cryptokid what should I put as “constructor arguments abi-encoded”?

I don’t know, you can copy everything from Rinkeby in case that it was verified there.

I had this issue before and I found out that I needed to put some of the search logic into my cloud function to call the .json files and spit them out on my website. I’m not sure if that will help but if you don’t have a cloud function pulling your metadata it wont show up on your Moralis website.