MagicBet is a no loss betting platform, inspired by PoolTogether. It allows users to bet on real life future events and outcomes without risking their stake.
All stakes accrue interest (via Aave) until the event which is bet on happens. The interest payment is then shared among the winners, and all participants (winners and losers) get their stakes back - thus allowing users to save money in a fun manner.
Users are minted ERC20 tokens equalling the Dai bet, which must be burnt when receiving their stake back (and winnings, if any). The tokens are specific to the outcome- an event with five outcomes will have 5 different ERC20 tokens. This allows users to trade bets among themselves- or even, if there is sufficient liquidity, to create a Uniswap pair. The value of each token will be minimum 1 Dai, slightly higher if they represent the likely winning outcome.
A robust Oracle solution is essential to our product- it would not be acceptable if the Magic Bet team had the ability to choose the winning outcome. After significant research, we selected Realit.io as our preliminary oracle, and the decentralised court Kleros.io in case of continued disputes. This is the same model that Gnosis Omen's prediction market uses. Thus, after the market contract has been deployed, the magic bet team have zero control over the market.
It is not our intention for this product to become yet another prediction market. Rather, we wish to position this as a fun way to save money (similar to PoolTogether). The current plan is to create a new market on a weekly basis, based on whatever we think would be the most engaging for users. Each market would run for a week only, at which point it would be locked (meaning, no further bets possible) giving time for the Dai to accrue interest, until the event occurs and users can withdraw.
This project utilizes a handful of modern technologies. Within the smart contract side, we utilize Solidity, Truffle, Buidler, Uniswap, Realit.io, kleros.io and AAVE, and within the front end, we are using React, TypeScript, Apollo, the Graph, ethers, and 3Box.