How often Moralis update NFT metadata?

Hello! We use Moralis NFT API.
We found some of the NFT metadata were old and null.

The majority of NFTs never change metadata in the past.
but recently a lot of NFT collectibles have revealed functions. (Update image after first minting)

  1. How often Moralis update NFT metadata? If no, do you plan to do it?
  2. Why is it sometimes “null”? Even token_uri has a correct value like this
"token_uri": "https://ipfs.foundation.app/ipfs/QmT8RYCuyKwNvoeyKgabhY7ps6SKaw7VJzH8QTAmc2X7k4/metadata.json",

Moralis reSyncMetadata API is helpful. However, our service is like an NFT portfolio service.
It’s difficult to update all of their NFTs.
Any solutions?

Getting the metadata through the token_uri is safer than using the metafield field. Why it happens I’m not sure. Naturally there is a lot of data involved so I think it’s a case of a few slipping through the cracks.

So you can either use that as the main way to get the metadata or use it as a fallback if metadata is null. In some cases the token_uri may also be incorrect so that’s what resyncing the metadata manually will hopefully fix.

1 Like

there are plans to add an api endpoint that can resync an entire NFT collection

1 Like

Wonderful! Would it be possible to foresee the release timing?
Also, How often Moralis update NFT metadata currently?

currently the metadata is updated now only when someone uses the resync API endpoint to update it.

We don’t have an exact ETA for an entire NFT collection resync API endpoint

1 Like

Thanks for the comment.

So you can either use that as the main way to get the metadata or use it as a fallback if metadata is null.

This would be tough for a heavy collector. The way requires a lot of HTTP requests…

It is yep. For a lot of NFTs you can look at token_uri as a fallback if you’re finding that using metadata is ok most of the time. How many are you loading in at a time?

If they are heavy collectors, it’s almost over 200.

Moralis now supports refresh for all NFTs automatically Moralis Updates NFT Metadata

Thanks, Ivan! So exited!

In a few days we will also add that no matter which endpoint you call - if that endpoint returns any NFTs they will all be scheduled for refresh. That will include the following endpoints:

When will you support it?
I tested Moralis.Web3API.account.getNFTs() the day before yesterday.
And I checked the NFTs just now. But they didn’t update unfortunately.

It should already be in effect. What are some examples? Contract address, token IDs, what the correct metadata should be, etc.

Hi, glad

This wallet: 0x7c9F237a4Bf59F4bf9D2E7137394Cc2eF1231091 has the below NFT.


I used Moralis.Web3API.account.getNFTs()
Then its return value of one of NFTs is below.
{
    "token_address": "0xa65ba71d653f62c64d97099b58d25a955eb374a0",
    "token_id": "1048",
    "amount": "1",
    "owner_of": "0x7c9f237a4bf59f4bf9d2e7137394cc2ef1231091",
    "token_hash": "f98d48462e0a38d3ba7930b6533d05f5",
    "block_number_minted": "14465185",
    "block_number": "14502714",
    "contract_type": "ERC721",
    "name": "NeoTokyoPunks",
    "symbol": "NTP",
    "token_uri": "https://gateway.moralisipfs.com/ipfs/QmTBqhscXTw7p5ZoA6tuwKivqbUJkNRcL4MWceS6cJedkK/ntp.json",
    "metadata": "{\"name\":\"Neo Tokyo Punks\",\"description\":\"Neo Tokyo Punks by NIKO24\",\"image\":\"ipfs://QmeZwQxJ28uvHH36en5L3LEDno7BBzL4XYeujB8pKZ664u/ntp.png\"}",
    "synced_at": "2022-05-18T21:42:22.956Z",
    "last_token_uri_sync": null,
    "last_metadata_sync": null
}

The token_url was still old. And both “last_token_uri_sync” and “last_metadata_sync” are null.
It seems not to work well.

This is not yet in use.

Did you try resyncMetadata with uri flag for that token id and it don’t work?

Did you try resyncMetadata with uri flag for that token id and it don’t work?

I’m afraid no.

According to this post, it should be automatically updated when we call Moralis.Web3API.account.getNFTs()
https://forum.moralis.io/t/moralis-now-automatically-updates-nft-metadata/14816/10
Is my understanding correct?

It says that in few days that should be enabled too.

What is the expected token_uri?

OK. I called the API the day before yesterday.
Let’s see…
The expected token_uri is
https://ipfs.io/ipfs/Qme5N2z4Q5J84xwc3J4Sb2Bp4K1uXKU5PnnKg9p7NdH9Sc/1048.json

{
  "name": "Neo Tokyo Punk #1048",
  "description": "Neo Tokyo Punks by NIKO24",
  "image": "ipfs://QmTDtXxXbeqGTsjtiJumoZYFyjZSXdJUe73Dzzw9E4c31L/1048.png",
  "edition": 1048,
  "attributes": [
    {
      "trait_type": "Background",
      "value": "red"
    },
    {
      "trait_type": "Body",
      "value": "sunset"
    },
    {
      "trait_type": "Accessories",
      "value": "none"
    },
    {
      "trait_type": "Mouth",
      "value": "surprised"
    },
    {
      "trait_type": "Eye",
      "value": "calm"
    },
    {
      "trait_type": "Hair",
      "value": "middle part RE"
    },
    {
      "trait_type": "Clothes",
      "value": "hooded sw moon"
    },
    {
      "trait_type": "Backpack",
      "value": "katana BK"
    },
    {
      "trait_type": "Mask",
      "value": "anonymous YE"
    }
  ]
}

Seems to be synced now.

Thanks for letting me know, glad.

This wallet: 0x7c9F237a4Bf59F4bf9D2E7137394Cc2eF1231091 has more than 10 NFTs of
collection(NeoTokyoPunks :https://opensea.io/collection/neo-tokyo-punks-nft )

But I could confirm that only 2 NFTs were updated. The rest of them have still old metadata.
It seems to take more time…

You may have to stick with resyncing the metadata manually for now until the issues are sorted with the automatic syncing, it did work for one of those tokens for the Neo Tokyo collection I just tried (1049).

Thanks for your reply.
Understood. I’m sorry that the automatic syncing function didn’t work well.