Service for building your own community (or fan zone for a team) with unique assets: NFT, FT, video streams. Vote with DAO, organize sweepstakes, share news and take advantage of the web3 world with a few clicks.
I start from html template and general idea to create the service that can simplify web3 usage and get more control and marketing benefits for any teams or individuals.
Anyone can create multiple communities and simply switch using our interface. You can create "Private" community (not listed in all communities section) or "Public" community that will be listed in selected category.
When you create NFT collection or Fungible Token - we deploy your own smart-contract and transfer ownership to your wallet that allow you to get more control and really own your assets. You can pause/unpause this smart-contract anytime.
For NFT and FT we create distribution campaigns that can be managed and provide different settings to cover all your needs. We have few distribution strategies:
Community moderator can change community settings (already implemented) and provide the links to social media (coming soon).
Also your tokens and NFT will be used for participate in community DAO voting (coming soon).
Public community section allow you to found all public communities, view NFT Collection, FT campaigns and will be extended by DAO voting and video streams by Livepeer. On this section you can see NFT details page where you can claim NFT (if eligible based on distribution campaign settings).
Project build using hardhat for smart contracts with OpenZeppelin library for basic ERC-1155 for NFT and ERC-20 functionality for fungible token. Frontend build on react with redux and wagmi hooks for connect and communication with blockchain.
I chose polygon and optimism network because it provide cheap and fast transactions.
All media files stored in IPFS using nst.storage service that simplify this process and help to save ERC-1155 metadata file with media in one call. Also usage nft.storage speedup content delivery from IPFS that fills like usage regular web2 services for end users.
Tableland provide new possibilities for collecting and retrieve information because allow store data cheaper and get it using SQL queries. I store all activity (mint NFT, claim FT) in SQL tables and it will be used to get last activity and get new users count for last 24 hours and 1 month.
Fungible token include Superfluid supertoken functionality that allow to simply send airdrops (already implemented) and create token streams for our distribution campaigns (for now it just claim all tokens immediately, but stream option will be available soon).
When you allow free NFT minting and token claims, you want to avoid multi-accounting and delivery your content for real audience. Worldcoin proof of personhood solve this issue and allow execute specific action only once per real person.
Livepeer video streaming is great solution for decentralized video streams - create new stream (already implemented) and add video assets for your community or fan-zone (coming soon).
Using alchemy NFT API we receive all NFT holders on Members page that can be used for token airdrops and future distribution campaigns.
It was my first usage of wagmi, tableland, superfluid, worldcoin and livepeer that's why I rebuild some parts few times.