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!
Log in or sign up for Devpost to join the conversation.