This is a tool that keeps you accountable by putting your money on the line. Literally.
You pick an accountability partner, someone who you trust and deposit some money into the contract (or "stake it"). This locks your money in the contract.
If you successfully complete the agreed upon task (by agreed on date), your accountability partner marks the task as successful and you get your money back.
If you fail, they mark it as failed and your money gets donated directly to Khan Academy. In other words, the tool is a forcing function to get something done and keep you accountable by actually putting money on the line.
If you want to create a stake to stay accountable:
- navigate to home page
- enter your accountability buddy address (who you trust), a name, and the amount to stake
-
click "stake"
-
wait for the stake to be processed and the stake id to be generated
- navigate to
keepmeaccountable.xyz/stake?id=[stake id]
where[stake id]
is your id. If you entered the wrong buddy address, you can recover your deposited funds by aborting the stake. Otherwise, have your accountability budy confirm to lock your money in the contract. You the stakee will not be able to recover the funds now without the buddy.
- upon completion or failure, the accountability buddy will mark the task as successful (โ) or failed (โ) to return your money or donate the money respectively.
So in the example where the stakee accomplished the task, this is what it would look like
And this is what a failed stake will look like.
Note the address listed in the contract for Khan Academy was taken straight from their donate page.
Smart contracts are written in Solidity, with foundry for testing, and Hardhat for deployments.
Run forge test
to run the test suite. Note however that foundry does not play nice with call
which limited the number of tests that could be covered, so I did more complete testing via a local Hardhat node.
These smart contracts are being provided as is. No guarantee, representation or warranty is being made, express or implied, as to the safety or correctness of the user interface or the smart contracts. They have not been formally audited and as such there can be no assurance they will work as intended, and users may experience delays, failures, errors, omissions or loss of transmitted information. I am not liable for any of the foregoing. Users should proceed with caution and use at their own risk.
Thanks to Walden for taking a glance at the contract and Aadil and Morgan for the idea.