# How to Query NFT's metadata Onchain

**URL:** <https://classic-agora.terra.money/t/how-to-query-nfts-metadata-onchain/2299>\
**Category:** Technical Development\
**Created:** [October 18, 2021, 10:44am UTC](https://classic-agora.terra.money/t/how-to-query-nfts-metadata-onchain/2299 "2021-10-18T10:44:57Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![NFT](https://sea2.discourse-cdn.com/terra/user_avatar/classic-agora.terra.money/nft/32/2188_2.png) [@NFT](https://classic-agora.terra.money/u/NFT)\
**Post date:** [October 18, 2021, 10:44am UTC](https://classic-agora.terra.money/t/how-to-query-nfts-metadata-onchain/2299/1 "2021-10-18T10:44:57Z")

</div>

Hello,  
I would like to understand how to query metadata onchain.  
Let’s assume I want to query metadata of all WomenVSApe NFT ([Terra Finder](https://finder.terra.money/columbus-4/address/terra139pqfy6armpauyqqhev7tdncs64gs26frj92y3)).  
What kind of Query request I should do?

---

<div class="post-metadata">

**Author:** ![kasunOMG](https://avatars.discourse-cdn.com/v4/letter/k/58f4c7/32.png) [@kasunOMG](https://classic-agora.terra.money/u/kasunOMG)\
**Post date:** [April 25, 2022, 5:56am UTC](https://classic-agora.terra.money/t/how-to-query-nfts-metadata-onchain/2299/2 "2022-04-25T05:56:52Z")

</div>

I also have the need for same functionality. Let me know if anyone has tips on this

---

<div class="post-metadata">

**Author:** ![Tips](https://avatars.discourse-cdn.com/v4/letter/t/c5a1d2/32.png) [@Tips](https://classic-agora.terra.money/u/Tips)\
**Post date:** [April 27, 2022, 4:34am UTC](https://classic-agora.terra.money/t/how-to-query-nfts-metadata-onchain/2299/3 "2022-04-27T04:34:57Z")

</div>

Any reply yet on this ? Still waiting

---

<div class="post-metadata">

**Author:** ![emidev98](https://sea2.discourse-cdn.com/terra/user_avatar/classic-agora.terra.money/emidev98/32/2915_2.png) [@emidev98](https://classic-agora.terra.money/u/emidev98)\
**Post date:** [April 27, 2022, 7:51am UTC](https://classic-agora.terra.money/t/how-to-query-nfts-metadata-onchain/2299/4 "2022-04-27T07:51:03Z")

</div>

Hello, you can use [Querier](https://docs.cosmwasm.com/docs/0.16/SEMANTICS/#query-semantics). Here you have an [example of the usage](https://github.com/pylon-protocol/pylon-core-contracts/blob/develop/contracts/pool/src/querier/anchor.rs#L44-L60).

---

<div class="post-metadata">

**Author:** ![fig](https://sea2.discourse-cdn.com/terra/user_avatar/classic-agora.terra.money/fig/32/1131_2.png) [@fig](https://classic-agora.terra.money/u/fig)\
**Post date:** [April 27, 2022, 7:59pm UTC](https://classic-agora.terra.money/t/how-to-query-nfts-metadata-onchain/2299/5 "2022-04-27T19:59:07Z")

</div>

Hey @Tips @kasunOMG - you are able to do this using Flipside Crypto, linked [here.](https://flipsidecrypto.xyz/)

Flipside has NFT metadata tables for Terra, ETH, and Solana, queryable via SQL.

---

<div class="post-metadata">

**Author:** ![Tips](https://avatars.discourse-cdn.com/v4/letter/t/c5a1d2/32.png) [@Tips](https://classic-agora.terra.money/u/Tips)\
**Post date:** [April 27, 2022, 11:17pm UTC](https://classic-agora.terra.money/t/how-to-query-nfts-metadata-onchain/2299/6 "2022-04-27T23:17:04Z")

</div>

Thanks so much

---

<div class="post-metadata">

**Author:** ![kasunOMG](https://avatars.discourse-cdn.com/v4/letter/k/58f4c7/32.png) [@kasunOMG](https://classic-agora.terra.money/u/kasunOMG)\
**Post date:** [April 28, 2022, 10:03am UTC](https://classic-agora.terra.money/t/how-to-query-nfts-metadata-onchain/2299/7 "2022-04-28T10:03:11Z")

</div>

I am still struggling to retrieve NFT meta data information consistent way.

For example consider the below two NFT collections. (I took these information from lunart and terra finder)

```auto
//Hell cats 
contractAddr = "terra1uv9w7aaq6lu2kn0asnvknlcgg2xd5ts57ss7qt"  

//Galactic punks 
contractAddr = "terra103z9cnqm8psy0nyxqtugg6m7xnwvlkqdzm4s4k"

```

I am able to query these contacts to retrieve the number of tokens using follow lines of code.

`terra.wasm.contractQuery(contractAddr, {"num_tokens" :{} }).then( res ={console.log(res.count)})`

But below sample code I wrote to retrieve meta data works only for HellCats contract. Not for the galactic punks.

`terra.wasm.contractQuery(contractAddr, {"nft_info" :{ "token_id" : "1" // I have checked with multiple token ids } }).then( res => { })`

Is there any consistent way I can query the metadata for NFT collections using terra.js (These type of queries can be easily perform for Ethereum, Avalanche, or Solana chains). I must be missing major concept in terra I guess.

---

<div class="post-metadata">

**Author:** ![kasunOMG](https://avatars.discourse-cdn.com/v4/letter/k/58f4c7/32.png) [@kasunOMG](https://classic-agora.terra.money/u/kasunOMG)\
**Post date:** [April 28, 2022, 10:20am UTC](https://classic-agora.terra.money/t/how-to-query-nfts-metadata-onchain/2299/8 "2022-04-28T10:20:39Z")

</div>

The issue with above code is that I assume token id to start from 0 for every collection. Its is not true. I have first query the token ids using “all\_tokens” and then use those token ids. The issue was fixed now.
