# Verify NFT ownership

**URL:** <https://forum.bubble.io/t/verify-nft-ownership/182145>\
**Category:** Need help\
**Created:** [December 13, 2021, 7:07pm UTC](https://forum.bubble.io/t/verify-nft-ownership/182145 "2021-12-13T19:07:16Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![tomajx](https://avatars.discourse-cdn.com/v4/letter/t/d78d45/32.png) [@tomajx](https://forum.bubble.io/u/tomajx)\
**Post date:** [December 13, 2021, 7:07pm UTC](https://forum.bubble.io/t/verify-nft-ownership/182145/1 "2021-12-13T19:07:16Z")

</div>

Hello, so with the growth of web3 applications we also need to more forward, and I wonder if there is a way to verify NFTs ownership with bubble, for example user would come to our VIP page and connect his metamask wallet so we would be able to verify whether he has our NFT or not, and only allow access based on that.  
This is all very new and information is pretty hard to find, but I believe some bubblers have already figured it out!  
Thank you

---

<div class="post-metadata">

**Author:** ![lorenzo1](https://avatars.discourse-cdn.com/v4/letter/l/278dde/32.png) [@lorenzo1](https://forum.bubble.io/u/lorenzo1)\
**Post date:** [January 8, 2022, 5:44am UTC](https://forum.bubble.io/t/verify-nft-ownership/182145/2 "2022-01-08T05:44:09Z")

</div>

Hey tomajx, I’m currently struggling with the same thing! My current solution works, but is pretty brute force and slow:

1. Installed EZ Code Web3 & Metamask and List Shifter plugins
2. Create a table of Contracts and Contract ABIs. In Contracts, I put the contract addresses + token IDs that are valid.
3. In Contract ABIs, I put contract address and their ABI from etherscan.
4. Do a List Shifter loop that goes through each item in Contracts, gets the ABI, and reads the smart contract using “ownerOf”.
5. Writes the owner address result to Contracts in an owner field.

Now this works… but because I haven’t found a good way to time the completion of smart contract read with List Shifter moving on to the next item. I have to add a lengthy pause after each read.

Ideally, and EZ Code has mentioned they’d add it to their list, Smart Contract - Read could simply take a list, and do one call instead of several. I also tried this with their Opensea API plugin and that was a bust, as you can only batch pull 50 NFTs assets at a time and their plug-in doesn’t let you filter by contract address.

If anyone has a better solution, please share! This approach is so clunky right now, and only works because my Contracts table is rather small.

---

<div class="post-metadata">

**Author:** ![smartlabd](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/smartlabd/32/134621_2.png) [@smartlabd](https://forum.bubble.io/u/smartlabd)\
**Post date:** [February 10, 2022, 9:16pm UTC](https://forum.bubble.io/t/verify-nft-ownership/182145/3 "2022-02-10T21:16:48Z")

</div>

Hi guys! I have the dame question, so I sales ro EZ team and they told me this:

You can use the plugin action **Read Contract**  
Any NFT has a function to check if a wallet has it.

For example, all NFTs has a function named ownerOf, in the parameters, for ERC720 type, you just indicate the wallet address you want to check.  
For ERC1155, there are 2 parameters, wallet address and token ID.

Use our demo pages with Read Contract examples, find them in the plugin description

I have not tríes yet, If anyone of you tries and it works, let me know

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/bubble/original/3X/2/8/2847faa74692c2ffa5d939d3dc3724cdd060d247.png) [@system](https://forum.bubble.io/u/system)\
**Post date:** [February 21, 2022, 7:07pm UTC](https://forum.bubble.io/t/verify-nft-ownership/182145/4 "2022-02-21T19:07:32Z")

</div>

Closed on February 21, 2022, 7:07pm UTC

This topic was automatically closed after 70 days. New replies are no longer allowed.
