Null `metadata` property from `token` APIs

For APIs like /{address}/nft that return NFT information, it includes a metadata property. Can I get clarification on how the value of this property is set?

I have seen a few instances where different tokens from the same contract has this property
populated while others have it as null.

As an example, the first of these tokens (token_id: 68894) have the metadata property set while the other (token_id 23353) have it as null

    {
      "token_address": "0x6e4c6d9b0930073e958abd2aba516b885260b8ff",
      "token_id": "68894",
      "amount": "1",
      "owner_of": "0x87c066ed3142776f3df0b6bf329a72a7a672c7c5",
      "block_number": "12258081",
      "block_number_minted": "12258081",
      "contract_type": "ERC721",
      "token_uri": "https://api.influenceth.io/metadata/asteroids/68894",
      "metadata": "{\"name\":\"PN-35519\",\"image\":\"https://images.influenceth.io/v1/asteroids/68894/image.svg\",\"description\":\"A small, superior, Cis-type asteroid\",\"external_url\":\"https://game.influenceth.io/asteroids/68894\",\"background_color\":\"000000\",\"attributes\":[{\"trait_type\":\"Spectral Type\",\"value\":\"Cis\"},{\"trait_type\":\"Diameter (m)\",\"display_type\":\"number\",\"value\":3776},{\"trait_type\":\"Orbital Period (days)\",\"display_type\":\"number\",\"value\":1437},{\"trait_type\":\"Eccentricity\",\"display_type\":\"number\",\"value\":0.245},{\"trait_type\":\"Inclination (deg)\",\"display_type\":\"number\",\"value\":3.89},{\"trait_type\":\"Scanned\",\"value\":\"Yes\"},{\"trait_type\":\"Rarity\",\"value\":\"Superior\"},{\"trait_type\":\"Yield1\",\"display_type\":\"boost_percentage\",\"value\":3},{\"trait_type\":\"Metal1\",\"display_type\":\"boost_percentage\",\"value\":10},{\"trait_type\":\"Organic1\",\"display_type\":\"boost_percentage\",\"value\":10},{\"trait_type\":\"Can Mint Crew\",\"value\":\"Arvad Specialist\"}]}",
      "synced_at": null,
      "name": "Influence Asteroids",
      "symbol": "INFA"
    },
    {
      "token_address": "0x6e4c6d9b0930073e958abd2aba516b885260b8ff",
      "token_id": "23353",
      "amount": "1",
      "owner_of": "0x87c066ed3142776f3df0b6bf329a72a7a672c7c5",
      "block_number": "12258668",
      "block_number_minted": "12258668",
      "contract_type": "ERC721",
      "token_uri": "https://api.influenceth.io/metadata/asteroids/23353",
      "metadata": null,
      "synced_at": null,
      "name": "Influence Asteroids",
      "symbol": "INFA"
    },

For reference, the above is part of the result from this call:

curl -X 'GET' \
  'https://deep-index.moralis.io/api/v2/0x87c066ed3142776f3df0b6bf329a72a7a672c7c5/nft/0x6e4c6d9b0930073e958abd2aba516b885260b8ff?chain=eth&format=decimal' \
  -H 'accept: application/json' \
  -H 'X-API-Key: XXXXXXXXXXXXXXX'

I’ve been getting the same issue for the past few days. Did you manage to fix it?

on what chain did you have that problem in the past few days?

Rinkeby test network. I saw another guy in Moralis discord who’s been getting the same problem too. He is also on Rinkeby and has been getting null metadata for the last 3/4 days

2 Likes

Having the same issue on Mainet… a lot of tokens do not have metadata. But have noticed that sometimes the returned result has syncing=1 when there is no metadata, other times it just is not there

1 Like

I have exactly the same issue with my production app. nft token metadata are not being returned on bsc mainnet. Can you guys just give me a hint how to fix this ?

1 Like

extracting the metadata from that token_uri is an option for you when metadata is not present?

Same problem here, NFTs have been sitting on Mainnet BSC for a few days and still about half of them show Null in the metadata field. How can we rectify this?

Server has been updated to latest

you could try to extract the metadata from the token_uri until we have it

can you give an example to check it with web3api?

here is the info for the api call
chain - BSC
contract - 0x8dB96c06E9E0d04B8377643f325EC342A3693a14
token - 11 or 185 (both show null)

some of the collection works completely fine

I have the same issue. Metadata missing. TokenURI also missing.
Happens sometimes, and sometimes it’s fine.

Here’s a screenshot of some CryptoDinos on Rinkbey ( 0xcc14dd8e6673fee203366115d3f9240b079a4930)

They all have valid URIs and metadata on chain
let me know if you need more details

@Fitz, it looks like now those particular token IDs have metadata

@niknak, can you give an exact example of token IDs with missing token_uri? on rinkeby we may still have a backlog of processing data

I’m wondering if there is something we can actively do to help with this issue? As new NFTs are minted its not ideal to have to wait a seemingly random amount of days to get this info populated

there was a big delay in the past, now it should work faster for new minted NFTs

like cryptokid says - it should be fast now
what delay are you experiencing?

we agree 100% we want it to be real-time

on Rinkbey

Contract: “0x9e91a8ddf365622771312bd859a2b0063097ad34”
Token ID: 3
URI is good, metadata missing

Contract: 0x88b48f654c30e99bc2e4a1559b4dcf1ad93fa656 (OpenSea)
Token ID: 62886929592743516099400483946210518088519633430112237408489058184185662930945
URI is good, metadata missing

Contract: “0xcc14dd8e6673fee203366115d3f9240b079a4930” (Dino)
TokeID: 534
Its URI does not load through the Moralis IPFS
https://ipfs.moralis.io:2053/ipfs/QmNe2Jxm3aqVmByTMdud3z2pDiAYARBfLTEFg1Z7iiK3rj/534.json
Works fine through Cloudflare
https://cloudflare-ipfs.com/ipfs/QmNe2Jxm3aqVmByTMdud3z2pDiAYARBfLTEFg1Z7iiK3rj/316.json

It looks like I also get timeout on that IPFS link now

Yeah On the moralis IPFS

now it looks like it started to work

Yes, but the metadata didn’t update… :frowning:

You might want to keep tasks in the queue until they succeed…