Cover image for HashCash 2.0

HashCash 2.0

kautukkundan profile image Kautuk Kundan ・3 min read

My Final Project

Any open public communication forum created by an individual is always spammed by people. E-mail service is the most abused. It forces people whose time is valuable to not check their inbox because it has a million emails with only a handful of them as useful to the individual. This spoils things for people who want to reach this individual for geneuine purposes and totally spoils the purpose of having an email account.

We want to make these public communication tools spam resistant and using economics bubble up things that matter to the individual

How it works

  1. Sender(Alice) and Reciever(Vitalik) both have created a hashcash2.0 account.
  2. Alice buys $VBUTERIN from uniswap and sends an email to vitalik with X $VBUTERIN tokens attached to it.
  3. As soon as the email hits vitalik it starts a reverse stream sending Alice her precious $VBUTERIN back at a predefined rate r defined by the amount and the duration of stream.
  4. As the email sits on the inbox it keeps on losing $VBUTERIN, this forces the receiver to respond to emails as soon as possible.
  5. Now if this is amongst the top emails by value that Vitalik has he will see this email on the top and then if the email is spammy he can burn the amount remaining in the email, or he can choose to refund the amount, or he can choose a ratio between both.
  6. If the email was spam the burnt amount will decrease the total supply thus increasing the value of remaining $VBUTERIN i.e rewarding all token holders.
  7. As $VBUTERIN gets used more and more, the token holders are rewarded.

NOTE: If you dont want to develop a personal economy just use any other token, that would boil the system down to like vitalik suggested here with a curve

Demo Link


Link to Code


How I built it

Stack - NodeJS, ReactJS, Ethereum

githubsdp - We used the student developer pack to get the domain name hashcash2.com

Amidst the lockdown our brainstorming sessions were through the means of video calls and we divided our work accordingly.

There were intial problems in integrating the smart contract as the different steps required validation and setting up the reverse stream was a difficult task to accomplish.

Another hurdle we came were setting up a email service in the application. We tried to setup our own SMTP server to have full control of the email headers and content to inject the contract details during sending of email but that was a difficult task to accompalish. So we stuck with using a central database to build the Proof of Concept.


We built this project as a submission to ETH India's Money legos hackathon https://devfolio.co/submissions/hashcash
The project finished at the 1st position among 15 other cool projects.


markdown guide