[SOLVED] Metadata not updloading to OpenSea

After I mint the NFTs successfully to Polygon, the metadata doesn’t seem to upload for these files. When I was testing yesterday with smaller files it worked fine.

When I try the validate asset link from OpenSea I get:

{
“success”: false
}

.jscode1

let fs = require(“fs”);

let axios = require(“axios”);

let media = [“albumcover.png”, “Fung Ku.mp3”, “Holes.mp3”];

let ipfsArray = [];

let promises = [];

for (let i = 0; i < media.length; i++) {

promises.push(

new Promise((res, rej) => {

  fs.readFile(`${__dirname}/export/${media[i]}`, (err, data) => {

    if (err) rej();

    ipfsArray.push({

      path: `media/${i}`,

      content: data.toString("base64"),

    });

    res();

  });

})

);

}

Promise.all(promises).then(() => {

axios

.post("https://deep-index.moralis.io/api/v2/ipfs/uploadFolder", ipfsArray, {

  headers: {

    "X-API-KEY":

      "API Key",

    "Content-Type": "application/json",

    accept: "application/json",

  },

})

.then((res) => {

  console.log(res.data);

})

.catch((error) => {

  console.log(error);

});

});

.jscode2

let fs = require(“fs”);

let axios = require(“axios”);

let songs = [“Fung Ku.mp3”, “Holes.mp3”];

let durations = [“1:56”, “3:05”];

let ipfsArray = [];

for (let i = 0; i < songs.length; i++) {

ipfsArray.push({

path: `metadata/${i}.json`,

content: {

  image: `ipfs://QmZfHUBtj4ijp3321hCceCDmJ8jC21jwDwRz5znbwwv69W/media/0`, //xxx = hash

  name: songs[i],

  animation_url: `ipfs://QmZfHUBtj4ijp3321hCceCDmJ8jC21jwDwRz5znbwwv69W/media/${i}`, //xxx = hash

  duration: durations[i],

  artist: "Aash",

  year: "2022"

},

});

}

axios.post(“https://deep-index.moralis.io/api/v2/ipfs/uploadFolder”, ipfsArray, {

headers: {

  "X-API-KEY":

    "API Key",

  "Content-Type": "application/json",

  accept: "application/json",

},

})

.then((res) => {

console.log(res.data);

})

.catch((error) => {

console.log(error);

});

Smart Contract:

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.3;

import “github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/Counters.sol”;

import “github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/extensions/ERC721URIStorage.sol”;

import “github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol”;

contract NFT is ERC721URIStorage {

using Counters for Counters.Counter;

Counters.Counter private _tokenIds;

address public owner;

constructor() ERC721("1st AUNS NFT Album", "AUNSS") {

    owner = msg.sender;

    createToken("ipfs.moralis.io:2053/ipfs/QmSTfn89CNcpWZ8RDpLwYvcu32fDbxbP9Yh1MeuyGNpsgu/metadata/0.json");

    createToken("ipfs.moralis.io:2053/ipfs/QmSTfn89CNcpWZ8RDpLwYvcu32fDbxbP9Yh1MeuyGNpsgu/metadata/1.json");

}

function createToken(string memory tokenURI) public returns (uint) {

    require(msg.sender == owner, "Only owner is allowed to createTokens");

    _tokenIds.increment();

    uint256 newItemId = _tokenIds.current();

    _mint(msg.sender, newItemId);

    _setTokenURI(newItemId, tokenURI);

    return newItemId;

}

}

The token uri of the NFT’s seems not accessible.

"token_uri": "ipfs.moralis.io:2053/ipfs/QmSTfn89CNcpWZ8RDpLwYvcu32fDbxbP9Yh1MeuyGNpsgu/metadata/0.json
"token_uri": "ipfs.moralis.io:2053/ipfs/QmSTfn89CNcpWZ8RDpLwYvcu32fDbxbP9Yh1MeuyGNpsgu/metadata/1.json
1 Like

Yep needed to put https://.

1 Like

Omg I can’t believe it! Thanks :smiley: