Inspiration

Today, we’re seeing a growing usage of ‘access NFTs’ (ticketing, VOD services, metaverse, …). Services usually only verify the ownership of the NFT once, in this case a user actually can use the NFT to access the service and then transfer his NFT to another user. in other words, two persons use the same service at the same time (which is a form of Sybil attack…).

What it does

The app watches NFT transfers and automatically cut the service in case of a transfer.

How we built it

The app is deployed to Aurora. I used Solidity to write the NFT smart contract. The frontend is built in React. I also used Aurorascan to get the contract verified, and Aurora RPC to detect the NFT transfers.

Challenges we ran into (Défis que nous avons rencontrés)

  • It was hard to get the contract verified on Aurorascan Testnet (no API available)
  • The tracking and filtering of the logs
  • Handling the response took more time than I expected. This is due to the delay between tx broadcast and confirmation: the NFT balance is updated after 1 block confirmation

Accomplishments that we're proud of

I’m proud that I have been able to deliver a functional web app. The concept is very simple and straight forward, and yet extremely relevant from a market standpoint: it’s solving a major issue that a lot of NFT-gated projects are already facing today.

What we learned

Now I know how to access and handle the tx logs.

What's next for NFT Watcher

The project requires some optimization, but the following elements are already on the roadmap:

  • Multi-network support: i.e. watch an NFT on Ethereum while the service is on another network (Aurora, NEAR, …)
  • The NFT Watcher currently works on the client side (doesn’t use any server resource at all), but it also can run on a third-party server.

The NFT Watcher is essential for quasi-all NFT-gated projects and I’m determined to develop it further!

Built With

Share this project:

Updates