With CoffeeCoin we wrote a basic smart contract in Ethereum to allow investors to send cryptocurrency to a smart contract and receive tokens in exchange for their money (CoffeeCoins). The smart contract could also make payment to token holders. While currently the payback amounts and timing are triggered manually, the ideal design would have the smart contract tied to the revenue of the underlying machine asset such that payback to investors happened automatically and constantly.
There are still a number of features that would be desirable before this system would be both widely useful and preferable to one built with more traditional web technologies. In particular:
- Ability to pause execution of the contract in case of machine malfunction.
- Ability for token holders to cash out and sell their tokens on a secondary exchange.
- Ability to give ratings to different machines and adjust interest rates accordingly (machines in high-traffic areas would be less risky than machines in low-traffic areas)
- etc., etc.
What we discovered as a team is that it would take about as much work to develop a smart contract to handle this situation well as it would to develop an entire borrowing and lending system. At this point Shawn discovered Dharma Protocol. It pretty much exactly what we were beginning to understand would be necessary – an entire framework for handling debt in a blockchain environment. Take a look at their video.