SIGNET

Decentralized Social Media Platform Application
Explore the github repository »

View Demo · Report Bug

About The Project

Inspiration

Always wondering if there is able to have a Blockchain Journal Book application for people to save their photos or stories on-chain and can last forever, even their offsprings could watch it which is a nice point of using blockchain.

Besides the function of storing memories, signet could also be a good fit for connecting others in this space, and I gave it a name signet, it is similar to a badge or emblem which represents a user’s ideas or memories. We need to sign for every single transaction on blockchain, I found signet could be a good fit for this. After a month of development in chainlink hackathon, the product demo is working as expected.

What it does

Signet is working the same way as other social media platforms, such as facebook, twitter, etc. BUT signet is fully decentralized which means you have to pay gas for any actions.

You can make post(sign signet), you can like or unlike other user's post, follow or unfollow other users, change your profile pic or your profile name, and you can star (star other user's post will also send $10 worth of coin token to the user) other user. You could see the user's posts on your Home tab in the futrue after following the user.

How I built it

Frontend technology is based on next.js which is hosting on vercel and wagmi is the contract interaction framework, and also thanks alchemy and infura for providing the best blockchain API.

Backend technology is based on smart contract and api, hardhat is for develop smart contract, nodejs is for smart contract monitoring, django is for better performance of api for frontend, and filecoin(nft.storage) is for storing all signets metadata on-chain, and chainlink price feed is for sending the star gift payment.

Roadmap

  • [x] signet api
  • [x] signet smart contract monitor
  • [x] signet frontend
    • [x] home tab
    • [x] explore tab
    • [x] profile tab
  • [x] signet smart contract
    • [x] signet controllor
    • [x] signet followSys
    • [x] signet profileSys
  • [x] filecoin integration with nft.storage/Estuary
  • [ ] NFT owner tab

The next goal is NFT owner tab, it is a function of displaying NFT collection owner only posts, which is for users to connect with other users who has the same collection of NFT.

I also want to reward the user who likes and stars other people with a random number of SIGNET token by using chainlink random number service, but I don’t have a clear token economic system in my mind yet, so might add this feature later.

I am planning to build comment function, direct message function, and group chat message function. Haven't figured out the best way of implementing them fully decentralized. Signet is going for the full decentralized dream!!!

Challenges I ran into

  • The biggest challenge Signet always run into 429 error of Alchemy, Infura api, because there are too many on-chain connections, I put 4 api keys for the next.js application and it is not that smooth as expected.

  • The other challenge was about building follow and unfollow system in smart contract, It had the error of deleting wrong item from array in the smart contract, and I actually wrote the whole storage array on a piece a paper to figure out the error.

  • The other one was wagmi contract interaction freamwork, it is not as good as I thought which requires me to put contract function in different js files for frontend.

  • And the last one to mention is dynamic route in Next.js, I still can not make the [useraddress] file inside of other folder work, which means [useraddress] is under the main domain.

Accomplishments that I’m proud of

I am super super proud of every single thing I did in this project.

List of what I learned

  • [x] signet frontend
    • [x] learned how to use wagmi framework
    • [x] learned how to hosting next.js project
    • [x] learned how to mapping json reponse in next.js
    • [x] learned a lot skills(there is too much) of building next.js application
  • [x] signet smart contract
    • [x] learned interface contract usage
    • [x] learned deleting item from a list of array
  • [x] signet backend
    • [x] learned how to monitoring smart contract on my own server
    • [x] learned how to use Django for frontend development
    • [x] learned how to work with storage.nft and estuary

..... and many more

Contact

astro - @lil_astr_0 - wangge326@gmail.com

Project Link: github demo

Please dm on twitter if you need Goerli Testnet Native Token to test Signet, I am happy to help!

Built With

Share this project:

Updates