After being in the web3 space for a year and joining 100+ discord servers 😅. I have noticed that discord is being heavily used a token gated community chat application. However, discord is not the most suitable application as everything is role-based (basically you are assigned a role which has access to gated channels in a discord server).

This is where I found an opportunity to build a similar application with blockchain level security. NiftyGuilds directly checks the NFTs in a wallet and accordingly provides access to the respective chat groups (no role assignment). This is done on every connect meaning if you no longer hold the required token the access is revoked automatically.

What it does

  • NiftyGuilds is a web3 based token gated chat application which lets users interact with fellow token holders and have a place to hangout and discussion about the future of the community.

  • NiftyGuilds is permissionless meaning there is no formal process of onboarding any NFT collection onto the platform.

How we built it

  • NiftyGuilds automatically detects NFTs in a wallet using Covalent APIs and checks if there is any server for the respective group in the Textile ThreadDb database if there isn't it creates one automatically and provides access.

  • All the messages, channels and server information is stored on ThreadDb. We need not store any user related information because we check for NFTs on every connect interaction.

Challenges we ran into

  • Textile seems to have a very limited set of features. For instance, there is no way in textile ThreadDb to apply filters when listening for events in the database except for fundamental operations like Create, Update and Delete. I wanted to apply filters like creation of a instance in a collection with x attribute having y value.

Accomplishments that we're proud of

  • Making application permissionless where anybody can simply connect their wallet and get started with zero setup.

What we learned

  • Learned a lot about Textile ThreadDb.

What's next for NiftyGuilds

  • Roles assignment (NFT projects using Openzeppelin RBAC - Role Based Access Control)
  • Composable Channel Conditions (Conditions to join channel like holding 2 NFTs, holding Special Trait NFTs)
  • Livepeer Integration (for livestream in channels)
  • Direct Messaging

Built With

  • covalent
  • nextjs
  • textile
  • threaddb
Share this project: