hi there - we have no eta right now - we will write when its done
Yaa, Outdated NFT Metadata is a huge problem, every collection I try to add, they have outdated metadata, which causes a huge issue, some NFTs have metadata but donāt have attributes inside metadata, and some donāt have metadata at all.
dApp based on current scenario is not possible. I tried making a workaround for it, by using the token_uri, but token_uri is also outdated, thus couldnāt use that to fetch new metadata.
Then I thought of using the Moralis API to resync that particular token, but like if a collection have 10-15 outdated NFTs metadata, then it would rate limit us. And I came to know that we can call the resync API only once at a while in free API, and only two times in Pro API. So thatās not a good solution either, so I am stuck as of now due to that.
Iād like to add my support for this feature. My use case:
10k with Reveal mechanics
Reveal day shows up so I want to update the metadata for all 10k otherwise my users see an old unexciting placeholder while on OpenSea, Rarible and the rest see a beautiful new PFP.
If my math is correct, Iāll need to use 5 (resync) + 5 (update metadata) x 10,000 or 100k requests so they see nice PFPs. Or, send them over to a competitive product. Repeat for each Reveal.
Iād much rather a single call that takes contract_address and updates all its token_idās metadata for say, 10k requests total?
This is how we make sure that our users receive a great experience.
Thanks,
Pat
how did you compute this part? I would think that you only have to call resync 10k times with uri flag, once for every token id
My tests show that you have to call resync then call get nft requiring 10 requests per NFT to get its specific updated metadata.
Also noticed this ā Note: /nft/{address}/{token_id}/metadata/resync
has a billing cost of 5 and a rate limit cost of 25, meaning that you can call it only once per second with a free plan and twice a second with a Pro plan
I certainly am new to Moralis so if there is a better way, please let me know.
A bigger problem would be that you can call resync metadata only once per second.
Do you control that smart contract that does the reveal?
We do not control contracts but want to make them visible to people who want to present them in galleries.
If you know when a reveal is done you can run resync only after that once
When I know the date, I can schedule a metadata refresh. what Iād like is a single call to Moralis with a contract_address and you guys refresh the meta for all of the token_ids.
Moralis is currently working on resyncing of entire collections at once yes.
I guess Iāll do some just-in-time metadata updates when someone views a single NFT until thatās ready. Any kind of rough prediction of availability would really help me plan my roadmap. Thanks!
Great can we get an ETA on this.
Any idea how to use with unity ?
This is the method i use on a ārefreshā button:
public async void resyncMetadata()
{
await Moralis.Web3Api.Token.ReSyncMetadata(address: "0x34d85754fbad12eca81e2afe6a7648051574a63c", tokenId: "2", GameManager.ContractChain);
}
But it doesnt seem to work, its been hours
what exactly doesnāt work? what is current output and what is the expected output?
Hi there !
Thanks for the reply !
Between pre-reveal and reveal, the metadata in unity have not changed, but they did on opensea.
I have used this resyncMetadata method on a single token to test the update but nothing happened, it is still the unrevealed uri and metadata.
you have to use the uri flag for that resyncMetadata, it will not work if you donāt use uri flag
ok thank you, struggling with syntax:
public async void resyncMetadata()
{
await Moralis.Web3Api.Token.ReSyncMetadata(address: "0x34d85754fbad12eca81e2afe6a7648051574a63c", tokenId: "2", GameManager.ContractChain, flag: "uri");
}
But this shows error: āThe best overload for āReSyncMetadataā does not have a parameter named āflagāā
what am I missing?
I donāt know the syntax for unity, you can call a cloud function or use the web3api interface directly