Inspiration
After seeing NFT projects that follow poor durability or safety practices I was interested in coming up with some further safety methods to give buyers more assurances. After seeing the rise of NFTs attached to AI chatbots that looked like a great use case to protect the tie in of the trained AI and the NFT and also show how an OAuth2 JWT token style authorization to have a secure conversation with a bot would work.
What it does
An extension to ERC721 NFT standard to allow for chatbot specific properties and freezing values to protect them from being changed or disconnected from a bot during NFT resale.
A web app showing using the personal sign feature of web3 to prove wallet address ownership as a gas free way to authenticate to chat with a bot. The approach is in the style of OAuth2 JWT bearer tokens. The bot has its properties on chain (optionally frozen).
Additional features include displaying whether the bot properties are currently frozen (and for how long) as well as whether the bot's tokenURI is on a pinned IPFS provider. More rigor would be needed for an actual check, but the premise is to help provide more assurances about the stability of an NFT that represents a chatbot. Filecoin backing of storage could also add more predictability of sustained storage. A concrete use case could be systems that are creating NFTs tied to trained AI and a purchaser would want assurances that they aren't losing the trained backend that is linked to the NFT via on chain references.
How we built it
Solidity for the contract and simple HTML, jQuery, and web3js for the frontend and node for the backend.
Challenges we ran into
Personal signing from a wallet can be tricky and there weren't many good examples to follow.
Accomplishments that we're proud of
Bridging a bit of the web3 world with proven web2 authorization ideas like OAuth2
What we learned
There's very little in the ERC-721 standard that's proscriptive for NFTs. Some more enhancements and consistency would be useful while still not cutting off new areas of exploration of course.
What's next for Chainbot
Looking into writing an EIP, alternate chain support for more efficient speed and lower gas usage, integration of the ideas into NFT sites
Log in or sign up for Devpost to join the conversation.