Random Acts of Kindness

Deposit into tiers, wait a day and hit withdraw to receive a random deposit within that tier. 6% tx fee taken and sent to charity (Fred Hutchinson Cancer Research Center). Guaranteed to receive almost your entire deposit back. Can receive up to max deposit for tier. Be kind!


This project is to encourage random acts of kindness within the blockchain community. There are five different tiers (bronze, silver, gold, platinum, and whale) that correspond to different levels of deposits that users can make. A 6% tx fee is taken and set aside for a charity donation. The rest of the deposit is tracked and after a day a user can hit withdraw and receive any random deposit from within that tier. For example, the bronze tier deposit range is $50 to $150, so someone can deposit any value within there. Let's say someone deposits $50, which is the minimum deposit. They will be guaranteed $47 back in their withdrawal but could receive anyone elses deposit up to $150. The spirit of this project is to be kind, to others and humanity overall. There is no incentivization to deposit more than the minimum deposit in order to ensure this remains out of kindness and not out of speculative value (ie. adding an erc-20 mint proportional to deposit value, enabling a secondary speculative market). Each depositor is rewarded with an NFT for their tier of deposit. There have to be at least 10 *tentative* total deposits in a tier for withdrawals to occur.

Random Acts of Kindness showcase

How it's made

This project was made using solidity. Chainlink VRF was used to randomly select a deposit on withdrawal. NFT port will be used to add to the frontend to award depositors in each tier with a unique NFT based on that tier. It was interesting thinking of all the ways this project could be exploited and creating security against those possibilities. An example is including a cooldown period of 1 day between depositing and withdraw. Without this, someone could wait till deposits are at 9 and then deposit to be the 10th one and keep withdrawing and depositing again until they receive they randomly receive their desired deposit. The threshold is 9 and 10 because there need to be 10 active deposits in order to withdraw.