deShare, a sharing platform that is completely decentralized, onchain.

Overview

deShare

Our team members, being brand new to web3, wanted to remake a web2 product we love in web3.

Enter deShare, a sharing platform that is completely decentralized, onchain. It is deployed via smart contracts on the Polygon network.

deShare works off of two NFTs, deShare Posts and deShare Members.

To create a post, a user must hold a deShare Member NFT. This is to prevent bot wallets from creating spam posts. As well, only members may upvote posts, also to prevent bots from spamming the upvotes.

For now member tokens can be minted by anyone, but before deploying to mainnet we would like to iron out our token economics first. We ideated many ways to distribute deShare Member NFTs, but for now we think a random lottery could work - every week, our smart contract could choose a random selection of wallets that are allowed to invite 3 members.

How it's made

Writing contract to contract interaction in our first days using Solidity was a fun challenge but we pulled it off.

Our Posts NFTs have a few additional features to ERC721 - upvotes (which emit custom log events with the updated vote count to enable dApps to quickly get updated vote counts, and custom user created post metadata)

Our frontend was completely built from scratch, first designed in Figma, then built in React. Our React app is deployed on Firebase, and uses ethers.js to interact with the blockchain. We only use ethers to write to smart contracts, ie minting member tokens and minting posts.

When a user creates a new post, this first uploads the post title and description to an ipfs storage. Then the metadata uri is used to mint a deShare Post (using ethers.js)

To display all the posts efficiently without needing to read directly from the blockchain, we used Covalent. We take advantage of the Class-A/Get-NFT-token-IDs-for-contract/ endpoint (and the starting/ending block to display newer posts) and the Class-A/Get-NFT-external-metadata-for-contract/ endpoint to get the posts name and description. We also wanted to use Class-A/Get-log-events-by-topic-hash(es)/ to view our custom Upvote event (has newest upvote count) emitted from our smart contract, but the endpoint was not working (the decoded info was null)

Getting Started

You will need Metamask installed on Google Chrome, connected to Polygon Mumbai network

npm install to install all dependencies

npx hardhat compile to compile smart contract

npx hardhat run scripts/deploy.js --network polygon_mumbai to deploy smart contract

npx hardhat run scripts/verify.js --network polygon_mumbai to verify smart contract

Frontend

npx hardhat compile to compile smart contracts

copy the artifacts/ folder to frontend/src

cd frontend

npm install install deps

npm start run react app at http://localhost:3000/

You might also like...

A free NodeJS sniper bot built to work with DxSale. DxLaunch is an open, decentralized platform for token sales.

A free NodeJS sniper bot built to work with DxSale. DxLaunch is an open, decentralized platform for token sales.

DxSale sniper bot Purpose This bot allows you to compete with other trading bots when buying a cryptocurrency which is going to be on presale on DxSal

Dec 25, 2022

A decentralized streaming platform to incentivize anyone to be a producer and earn from their supporters

A decentralized streaming platform to incentivize anyone to be a producer and earn from their supporters

Web3Swim Tools Utilized: Front-End: NEXTjs with TypeScript Back-End: Solidity (Smart Contracts) + Moralis (Database) + Thirdweb (Middleware) Blockchai

Oct 14, 2022

Decentralized Finance platform (frontend)

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: ya

Mar 28, 2022

Decentralized, token-gated discussion platform for DAOs

ETHCC Hackathon 2022 -- Debate3 This is the official ETHCC Hackathon 2022 submission for our project Debate3 🌈 . Project Description Debate 3 is a De

Nov 8, 2022

ChainLook is a decentralized blockchain analytics platform based on TheGraph and IPFS.

ChainLook https://chainlook.xyz ChainLook is a decentralized blockchain analytics platform based on TheGraph and IPFS. You can create beautiful widget

Nov 21, 2022

A list of helpful front-end related questions you can use to interview potential candidates, test yourself or completely ignore.

A list of helpful front-end related questions you can use to interview potential candidates, test yourself or completely ignore.

Front-end Developer Interview Questions This repository contains a number of front-end interview questions that can be used when vetting potential can

Jan 4, 2023

Completely unstyled, fully accessible UI components, designed to integrate beautifully with Tailwind CSS.

Headless UI A set of completely unstyled, fully accessible UI components, designed to integrate beautifully with Tailwind CSS. Packages Name Version D

Jan 4, 2023

Luckysheet is an online spreadsheet like excel that is powerful, simple to configure, and completely open source.

Luckysheet is an online spreadsheet like excel that is powerful, simple to configure, and completely open source.

English| 简体中文 Introduction 🚀 Luckysheet is an online spreadsheet like excel that is powerful, simple to configure, and completely open source. Links

Dec 31, 2022

A completely customizable framework for building rich text editors. (Currently in beta.)

A completely customizable framework for building rich text editors. (Currently in beta.)

A completely customizable framework for building rich text editors. Why? · Principles · Demo · Examples · Documentation · Contributing! Slate lets you

Dec 30, 2022

A self-hosted, completely private and free music streaming server compatible with Synology Audio Station's web browser interface and smartphone apps.

A self-hosted, completely private and free music streaming server compatible with Synology Audio Station's web browser interface and smartphone apps.

Open Audio Server Open Audio Server is a music streaming server compatible with Audio Station by Synology. Audio Station creates your own private serv

Dec 11, 2022

DiscordEmailVerifier - Quickly verify emails on your tokens for completely free using mail.tm's api.

DiscordEmailVerifier Quickly verify emails on your tokens for completely free using mail.tm's api. /* ❗ No, this code doesn't verify the email for you

Jun 7, 2022

A one-of-a-kind resume builder that keeps your privacy in mind. Completely secure, customizable, portable, open-source and free forever. Try it out today!

A one-of-a-kind resume builder that keeps your privacy in mind. Completely secure, customizable, portable, open-source and free forever. Try it out today!

A free and open source resume builder. Go to App What is this app all about? Reactive Resume is a free and open source resume builder that’s built to

Jan 3, 2023

A collection of Discord hacks & exploits that is completely made using NodeJS.

ZeroDiscord A collection of Discord hacks & exploits that is completely made using NodeJS Before using any of these tools First off, all of the tools

Jan 5, 2023

Completely free TS/JS one-file source code snippets with tests, which can be copied to avoid extra dependencies (contributions welcome).

TinySource Completely free TS/JS one-file source code snippets with tests, which can be copied to avoid extra dependencies (contributions welcome). Sn

Jan 3, 2023

A collection of Revolt hacks, exploits & tools that is completely made using NodeJS.

ZeroRevolt A collection of Revolt hacks, exploits & tools that is completely made using NodeJS Tools Name Description userInformation Grab's the speci

Aug 4, 2022

Incredible resources (with links) to help up-skill yourselves on various fields. Resources like programming, designing, engineering and much more and completely Open Source.

Incredible resources (with links) to help up-skill yourselves on various fields. Resources like programming, designing, engineering and much more and completely Open Source.

Shiryoku Incredible resources (with links) to help up-skill yourselves on various fields. Resources like programming, designing, engineering and much

Dec 15, 2022

Run a completely functional backend in just a few minutes.

Genezio Genezio is a platform for developers that want to write a backend in a very simple way. Just write a simple class using your preferred program

Dec 12, 2022

Blaze is a file sharing progressive web app built using WebTorrent and WebSockets

Blaze is a file sharing progressive web app built using WebTorrent and WebSockets

Blaze is a file sharing progressive web app(PWA) that allows users to transfer files between multiple devices. I

Jan 4, 2023

A CLI for peer-to-peer file sharing using the Hypercore Protocol.

A CLI for peer-to-peer file sharing using the Hypercore Protocol.

A CLI for peer-to-peer file sharing (and more) using the Hypercore Protocol.

Dec 30, 2022
Owner
Ian Mah
Computer Science student (BSc) at UBC. Most commits made between 1-3am.
Ian Mah
🐡 A simple open source phishing platform for red teams

?? A simple open source phishing platform for red teams

Christos Kaltsas 5 Apr 14, 2022
A completely decentralized way of sharing temporary messages.

Debin A completely decentralized way of sharing temporary and permanent messages. Debin uses Waku and IPFS decentralized networks to temporarily or pe

Paolo D'Amico 5 Jun 29, 2022
Uncensorable, immutable microblogging platform that is completely decentralized and does not rely on any centralized systems.

Zooko Truly decentralized, immutable and uncensorable microblogging Zooko is a working-example, proof-of-concept proving that you can have a decentral

Publius Federalist 152 Apr 20, 2022
An open source web3 decentralized video sharing 🎥 platform running on blockchain ⛓

DapTube ⚡️ A decentralized open source video sharing ?? platform on web3 ⛓ ✨ Share videos & movies without restrictions ?? Monetise your content ?? We

Langford Kwabena 4 Feb 19, 2022
Decentralized video-sharing social media platform, built using Lens protocol. 🌿

Lenstube Decentralized video-sharing social media platform. lenstube.xyz About Lenstube is a decentralized video-sharing social media platform, built

Lenstube 2.4k Jan 1, 2023
A video message app completely decentralized, apart from the turn server

Doom @WIP Doom (Decentralized Zoom proof of concept) What is this? It's a video message app completely decentralized, apart from the turn server (wip)

Felipe Melo 17 Oct 30, 2022
GitSol - an onchain version control protocol, service and cli tool

GitSol an onchain version control protocol, service and cli tool. Content what and why ?? Features ✨ Install ?? Usage ?? Examples ?? Documentation ??

GitSol 11 Sep 10, 2022
Onchain private messaging app with a significant encryption algorithm.

Hedwig DEMO We want to implement SSL technology to blockchain so decided to build onchain private messaging app. Diffie Hellman protocol was invented

İzzet Emre Demir 5 Nov 3, 2022
A file sharing service, where you can upload files and provide a download link for anyone on the internet by sharing the link 🔗 or via mail ✉️ which remains active for 24hours 🕙.

eShare | File Sharing App A file sharing service, where you can upload files and provide a download link for anyone on the internet by sharing the lin

Akhil Bhalerao 7 Nov 20, 2022
A self-hosted file sharing platform.

Pingvin Share Pingvin Share is a self-hosted file sharing platform made for the Appwrite Hackathon. ?? Showcase Demo: https://pingvin-share.dev.eliass

Elias Schneider 354 Jan 7, 2023