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

Built With

Share this project:

Updates