DevLog 10 - HarveyCoin - Decentralized Disaster Relief

***Read Past the intro to hear about a set of Etherum contracts that let you donate your existing ETH today to people that need help and get it all back in the future as the disaster is mitigated.***

Catchup:

Another month has gone by since the last Catallax DevLog update and it has been a busy month.  Work on project MCD continues and I’m still hoping to hit October 1st unless I get derailed by the project I’ll be discussing today.  The most interesting news is that we participated in the dAppathon put on by BCG DV and Dvolution in LA. We launched a prototype for a service called Lannister (http://lannister.tech) that lets you collateralize any existing or future ownable ethereum service.  I’ll publish a dev log on this in the future but we have more important things to talk about today. 

Now for today’s news and request for help: 

I’m from Houston and I haven’t been home for 2 ½  weeks.  I’ve seen pictures and I’ve heard stories. We’re headed back home now to a dry house with our shoulders filled with survivor’s guilt.  I’m a computer programmer.  I’m not a jump in a boat and pull people out of houses kind of guy.  I know people like that and I’m amazed at their service. What can I do?  How can I help?

I’ve started something and I need your help.  One of Catallax’s core concepts is the idea that decaying money can be used to rapidly rebuild a crumbled economy.  This was tried in Austria in the 1930s and was so successful that it threatened the central bank’s authority to issue currency and was shut down. See the Worgl experiment.  Ethereum lets us try it again very easily.

We have very big plan on how to implement this in a global way that fundamentally realigns incentives in the economy.  We are working on it, but we need help now.  Houston is hurting and Irma is hurling toward Florida and about to create another disaster area.

So here is what I have so far.  I call it HarveyCoin.  Open to better names.

HarveyCoin

HarveyCoin allows you to donate ETH to people who need it today and get it back over the course of the future in a guaranteed way. It is a glorified HODL strategy that helps people get their homes back while you maintain your position in ETH that you plan on cashing in far in the future.

There are four use cases: 

  1. Donate.  Donate your ETH today by creating a HarveyWallet and minting new HarveyCoin.  There is a 1:1 relationship between HarveyCoin and ETH.  Your ETH will be given out to people in need over the next 5 years and will decay back to you over that time.  So if you donate 5 ETH today you’ll be able to reclaim 1 ETH in a year, 1 ETH the year after that, etc.

  2. Become a Service Provider.  Create a HarveyWallet and begin accepting HarveyCoin for your services today.  The ETH you make by selling your services will decay at a stiff ~20% rate, but per day this is fairly low if you work with your fellow vendors and employees to get them onto the system as well and can turn over your HarveyCoin quickly.

  3. Get help.  Apply to the custodian to get disaster relief funds in the form of HarveyCoin in your HarveyWallet.  You’ll be free to spend the HarveyCoin with any approved vendors or other citizen that has a HarveyWallet.

  4. Exchange ETH for HarveyCoin.  Exchange cash or ETH to get more HarveyCoin.  This lets people who are dead ends in the ecosystem get value out the system for their HarveyCoin.  If the system is successful this should maintain as close of a 1:1 relationship between HarveyCoin and ETH as possible.  This gives us a good barometer of the system's success.

If you have ETH today that you plan on holding for a long time your only downside is liquidity. HarveyCoin helps you resist fear, uncertainty, and doubt while building the utility case for Ethereum. 

There is no profit built in for the custodian in the initial contracts.  The custodian can issue itself some HarveyCoin for administrative purposes, but I’m hoping this can be kept to a bare minimum and will keep the custodian true to making sure that HarveyCoin is as valuable as possible as it is the only funds that the custodian will be able to get access to.

You can find the command center for this project on r/Catallax here.  Please hop over and find a way to help.

Things we need:

  1. The initial contracts need to be vetted and can be found here.  I’m hoping to build some truffle tests in the near future as real life allows.  I wrote these quickly and they need some serious TLC before going live.
  2. Wallets for iOS and Android that make it dead simple to trade HarveyCoin.  I know react-native has some issues with implementing web3, but maybe there is a cordova/phonegap solution that can be put together quickly.
  3. Suggestions for the governance structure.  Right now the custodian just has an owner, but we can easily set that to a multisig wallet or some other governance structure.  All suggestions welcome here. I don't have the talent, training, or bandwidth to run a significant disaster recovery effort all by myself.
  4. A web app that directs the 4 use cases to relevant web apps that can capture info needed to approve wallets.
  5. Someone to write the exchange contracts.

I’ll quickly go through the basics of the contract:

HarveyCustodian

Members:

uint drain - holds decayed funds available to be claimed by minters

address treasury - the treasury wallet that minted funds go into for dispersal.  Also a HarveyWallet and subject to decay.

uint totalMinted - the total donated

uint totalDrained - the total reclaimed

address owner - owner of the custodian

mapping(address => bool) validWallets - allows the custodian to authorize HarveyWallets to participate in the system.

address[] wallets - a list of wallets that have participated with the system for iteration.

Functions:

setOwner - sets the owner of the custodian

setTreasury - sets the treasury wallet

mint - forwards funds to the treasury

unMint - allows minters to claim funds out of the drain

sendDecay - deposits decay with the custodian

setValidWallet - sets the validity of the wallet

calcVested - calcs the % vested over a 5 year period of a donation

availableToRedeem - calcs the amount available to be withdrawn given a minted amount, redeemed amount, and startTime

HarveyWallet

Members:

mapping(address => bool) owner - holds the owner status of the wallet.  Allows for multiple owners

address custodian - the custodian overseeing the wallet

uint lastCatchup - records the last time the wallet paid the decay fee

uint mintStart - records the time the wallet minted(you can only mint once)

uint minted - amount minted

uint redeemed - amount redeemed already

Functions:

setOwner - sets the address and validity of an owner

pay - pays an amount to another valid HarveyWallet.

calcCatchup - calculates how much this wallet owes in decay fees.

catchup - pays the decay fee to the custodian.

mint - donates ETH to the treasury that can be claimed back as time moves forward.

unMint - claims back ETH from the drain

Please hop over to r/Catallax to discuss more. 

If this is interesting to you and you'd like to see where we are going with Catallax, please pick up my book Immortality (Purchase of a physical or kindle copy helps support this project).

Donations always accepted at:

BTC: 1AAfkhg1NEQwGmwW36dwDZjSAvNLtKECas

ETH and Tokens: 0x148311c647ec8a584d896c04f6492b5d9cb3a9b0

If you would like more code articles like this please consider becoming a patron on patreon.

You can discuss this article and more at our reddit page r/Catallax.