Sociofy is a social media platform for NFTs. Currently beginners find it very difficult to search for genuine and meaningful NFTs. Learning from other users on what they are buying and holding can be a game changer for how NFTs are traded.
This project helps its users to become aware of which NFTs they can look into. The major bottleneck in today's marketplaces is that they are mapped from NFTs to users and not the other way around. People still learn about NFTs that are trending through traditional means (friends and influencers) but in a less efficient way. We propose a solution where users can do the following 1.) Login to our platform with wallets (Signed gas-less transaction) 2.) Follow people (addresses) and get notifications about what they are buying or selling 3.) View their own collection of NFTs and collection of other people 4.) View trending NFTs and people 5.) View profiles of other people
Login
1.) A random nonce is generated on backend and exposed through a public endpoint
2.) This nonce is queried on frontend and then signed using a signer from wallet
3.) Signed message is sent to backend where signer's public address is calculated and is matched against the information in database
4.) On successful verification the JWT token is generated and sent to user
Signup
1.) If login with metamask is the first login, user is redirected to a signup page where username can be chosen
2.) Username is stored in database via APIs authenticated with JWT token
Collection
1.) Query opensea APIs to get NFT collection which contains contract information, token id, image, symbol etc
2.) Add NFTs to our database with a timestamp
3.) Display the collection on frontend
Following mechanism
1.) Search for user to follow by querying the database through exposed APIs
2.) Add follower in database
Notifications
1.) Query to fetch all users that are being followed
2.) Fetch all NFT activity for each follower
3.) Filter this activity to only have activities that happened after the time user last logged out
4.) This last logged out time is calculated and saved in database at each logout
4.) Display all recent activities on frontend