Inspired by a common Chinese rotational lending game called “和会“, meaning “Rotating Credit and Savings Association (ROSCA)" (these can also be called a 'susu' or 'tanda') , which is made of a group of close friends or family members. They pool their money into a common fund, generally structured around monthly contributions, and a single member withdraws the money from it as a lump sum at the beginning of each cycle. The game is heavily reliant on the trust and relationship among members because there is no central authority recording or implementing the transactions.

We were also aware that many studies have shown that people are more likely to save if savings are presented in a lottery style. For example, it may be hard for someone to put aside $100 to save, but they are willing to spend that for a 1 in 6 chance at $600 which is analogous to joining a 1 month long, $100 susu (where they would be expected to win $600 twice a year).

We also realized that we also had the opportunity to make this a positive-sum game by investing the pot while it is waiting to be paid out. After running some Monte Carlo simulations, we found that the average user will get paid out more than they put in, especially if they join many Susu's.

Therefore, we decided to put this game on blockchain using a slightly modified version. Instead of one single member withdrawing the sum, we put the sum in the compound interest pool for a certain amount of time and then distribute the larger sum to a few players who win a lottery.

What it does

Our smart contract manages the ROSCA including accepting payments and depositing those into compound, tracking multiple Susu's, and managing the number of players in each. We also developed a frontend to make our contracts more accessible.

How we built it

Core smart contract toolset Solidity Truffle Metamask Open Zeppelin smart contract library Remix

General web front-end tools Foundation: Javascript, HTML, CSS Cloud: Google, AWS or Azure (to be determined) Deployment tool: perhaps Netlify, Github Pages or Google Cloud Platform

APIs integrated Web3 MetaMask Infura

General tools Editing: Sublime, Emacs, VIM, Atom, Visual Studio Version control: Git, Tig (curses-based interface to Git)

Design Sketch

Challenges we ran into

Brainstorming and finalizing on a game idea that is engaging, has incentives for users to participate, and makes sense to be built on blockchain Lack of cryptographically secure random number generation on ethereum Ambitious multi-lingual front-end development but limited time The lack of documentation of existing tools and difficulty in connecting it to our dApp

Accomplishments that we're proud of

Full robust set of smart contracts Integration of front end with back end Well thought-out user journey and UI/UX

What we learned

Using Metamask library to call Ethereum smart contracts Integration of front end with back end

What's next for Hotpot

We are looking to enable the entire user journey to be connected with back-end and smart contract We hope to continue improving this dApp and ideally introduce it to our targeted users in various countries in the world

Built With

Share this project: