We heard a talk by Prof. Dan Ariely describing the idea of using self-binding contracts to create positive behavioural change. Somehow we had the idea that we could use Particle's Internet Button and the Ethereum blockchain to improve upon this idea.
What it does
Say Alice has a goal of running every week for the next three months. She can create a ulysses contract on our website, and send over cash (in the form of Ether) to be stored in escrow. The contract is automatically linked to the Internet Button.
Now, Alice has to run at least once a week, and every time she does so she can tap the Internet Button once. If she fails, her cash is automatically sent to charity. If she succeeds, the cash is sent back to her.
Because the Internet Button is a physical object with LEDs that indicate the status of the current contract, Alice is constantly reminded of the need to run every week.
Instead of trusting a third party with the Alice's money, Alice's money is stored in a smart contract that can only be unlocked when a secret key is sent by the Ulysses server. Alice can read the smart contract code to verify the code.
How we built it
Our stack includes: Node.js for the Ulysses server backend Solidity for Ethereum smart contracts Particle Internet Button + Particle Cloud