GetNFTs APIs, the metadata of NFT in the return value is null

Dear Expert,

I just bought your API services, when I called the GetNFTs interface, I found that the metadata of NFT in the return value is null, but show the picture normally in opensea testnet.

This issue just occoured in one or two NFTs in opensea testnet which created by myself.

I wonder which cause this issue?

it looks like an invalid token uri there, can you paste more info?

Wallet address: 0xcC8C924c892F919eFA4C39347a8c72c818A281eB
Contract address: 0x257fe7bca2811046c14b52d788557fd9e1504570

Any more information needed?

the chain could also help

const options = {method: ‘GET’};

fetch(‘https://testnets-api.opensea.io/api/v1/assets?owner=0xcC8C924c892F919eFA4C39347a8c72c818A281eB&order_direction=desc&offset=0&limit=20&collection=zing-v2&include_orders=false’, options)
.then(response => response.json())
.then(response => console.log(response))
.catch(err => console.error(err));

The chain is in rinkeby, I tested it in below url:

https://docs.opensea.io/reference/retrieving-assets-rinkeby

https://deep-index.moralis.io/api/v2/nft/0x257fe7bca2811046c14b52d788557fd9e1504570/13?chain=rinkeby&format=decimal

=>

{
  "token_address": "0x257fe7bca2811046c14b52d788557fd9e1504570",
  "token_id": "13",
  "owner_of": "0xcc8c924c892f919efa4c39347a8c72c818a281eb",
  "block_number": "10934685",
  "block_number_minted": "10210149",
  "token_hash": "adbacaca8124a23daf932b430b74ae08",
  "amount": "1",
  "contract_type": "ERC721",
  "name": "Zing",
  "symbol": "ZING",
  "token_uri": "Qmad59fQPETu5FASAa3rc5FxpmSS8YpVa8Fy2UsQ67F5EN",
  "metadata": null,
  "synced_at": "2022-06-29T07:45:05.976Z",
  "last_token_uri_sync": "2022-06-29T07:45:05.522Z",
  "last_metadata_sync": "2022-06-29T07:45:05.976Z"
}

what is the expected token_uri in this case?

it looks like it is a problem with the contract, it returns that Qmad59fQPETu5FASAa3rc5FxpmSS8YpVa8Fy2UsQ67F5EN as token uri for that particular token id

I don’t use the token_uri, what does it means?

how did you create that NFT? the token uri should point to the metadata associated with that NFT

Created in opensea testnet, it can shows normally in opensea

it looks like an invalid token uri, I don’t know how it was created on chain

maybe opensea shows the image and metadata because you created that nft on opensea

on chain it doesn’t look like a valid token uri

OK,thanks for your help.

One more question:

Will this problem happen in other NFT chain in product environment?

Some worry about this issue will affect user experience

this shouldn’t happen in general, I don’t know why it happened now

usually you will have to deploy your NFT contract where you specify how the token uri should be

Ok ,got that.
Thanks

Hi expert,

I just found that Qmad59fQPETu5FASAa3rc5FxpmSS8YpVa8Fy2UsQ67F5EN is a hash address.

You can call this url : https://gateway.ipfs.io/ipfs/Qmad59fQPETu5FASAa3rc5FxpmSS8YpVa8Fy2UsQ67F5EN

and get the response:
{“name”:“Zing400”,“image”:“ipfs://QmeYf4QCYVgwCqtVFmQEEpgdUABGvG4xzFstZbG5nLbypQ”,“description”:“Mint by Zing”,“external_url”:“https://twitter.com/TempusFinance/status/1495747382285377538",“attributes”:[{“trait_type”:“Name”,“value”:“Tempus”},{“trait_type”:“Username”,“value”:"@TempusFinance"},{“trait_type”:"Release Source”,“value”:“TweetDeck”},{“trait_type”:“Type”,“value”:“Tweet”},{“trait_type”:“Retweets”,“value”:“55”},{“trait_type”:“Quote Tweets”,“value”:“13”},{“trait_type”:“Likes”,“value”:“180”},{“trait_type”:“Your Own Tweet”,“value”:“No”},{“trait_type”:“Release Time”,“display_type”:“date”,“value”:1645448940000},{“trait_type”:“Snapshot Time”,“display_type”:“date”,“value”:1645497919000}],“extras”:{“image”:“https://pbs.twimg.com/media/FMHyNHYXsAEuA3O?format=jpg&name=medium",“video”:"”}}

Where you can find the image url is https://pbs.twimg.com/media/FMHyNHYXsAEuA3O?format=jpg&name=medium

So can we support this case?

@cryptokid pls see above advice

for me I would expect it to be a valid token uri, not an IPFS hash, for that token uri

is this specified in ERC721 standard, that token uri can be only an IPFS hash?