Imagine a world where your charitable donations always made a difference. A world where a charity could be run with minimal overhead. This charity would allow you to see what path your donation took, from the moment it was given, to the moment it was spent by the boots on the ground making a difference. A better charity is possible with blockchain technology, and ethereum. Using these technologies we can build a decentralized autonomous charity that can accept donations in any currency, hold onto its funds in a non-volatile form and deploy them globally while maintaining complete transparency of individual donations.

There’s a set of problems a better charity needs to address, we’ll look at three of them. If I donated a Bitcoin about a month ago it would have been worth less than half of what is worth now, and if I donated it yesterday it would be worth $400 less today. This is The Volatility Problem. This isn’t exclusive to cryptocurrencies, it applies to fluctuating foreign currency markets and donations in the form of stocks. Next, The Triage Problem: we have a pool of money, we need to make decisions on how to use it. Some things will get the funding they need, but others won't, who makes that decision? Finally, the The Transparency Problem, how do you know your money didn’t mostly go to a giant painting of the charity’s namesake?

The Volatility Problem

If only we had a more stable coin. The price volatility of cryptocurrencies (or foreign currency markets or stocks) introduces risk that your donation will be worth something wildly different the moment it is needed. This could be really good if the value increases, or devastating if it decreases. Charities usually aren’t able to “just hodl” through a Bitcoin crash caused by China’s ever changing views of Bitcoin (or whatever else is moving the price that week). When they need to use their funds, they have to use them. This risk can be a disincentive for a donor to make donations in their favorite cryptocurrency.

Luckily, the guys at Maker have created SAI, a more stable coin. Maker is working towards creating the DAI, a decentralized stablecoin, and SAI is their first generation stablecoin. By using SAI (eventually DAI) for donations we could alleviate the volatility problem. I definitely recommend looking at the video explainers on their site, and if you are interested, reading through their whitepaper and purple paper for technical details.

Our charity needs a mechanism for converting all donations into SAI/DAI to stabilize the purchasing power of donations. Right now there is no one solution for converting any type of donation into SAI. There are, however, ways of converting ERC20 compatible token or Ether into SAI. For example, we could use the 0x.js api to convert an Ether donation to SAI. The SAI could then be stored in our charity’s account, safe from the whims of cryptocurrency markets.

The Triage Problem

This is a governance issue that our charity could solve by issuing voting rights to donors depending on a combination of donation sizes and a reputation system. The implementation of the solution to this problem would likely be easier than coming up with the governance model itself, so it’d be great to talk to charities like GiveDirectly (they are great, check them out), or GiveWell who have experience with processes for picking charities and how donations can go further.

Regardless of what the governance model ends up looking like, we could build it on the blockchain. The ideas is that perhaps having higher donor involvement would make them more invested in projects. Of course, every donor may not want to do this. A system to delegate your vote to other donors or to the charity itself would need to exist.

The Transparency Problem

The blockchain is inherently transparent, transactions are in a public ledger anyone can see. This is often cited as a weakness but for our charity this is a feature, it takes care of most of the transparency problem. Being able to see transactions is not quite enough though, we want to track a donation (the exact donation) down a chain of transactions connecting the donor to the exact good the donation was used for.

Imagine our charity works with hospitals. Say there are 10 hospitals. Each hospital has 3 volunteers and each of those volunteers in charge of purchasing different things. This is a wildly oversimplified example, but at a high level this is the flow of a single donation:

The charity receives a donation (in SAI). It puts that in a fundraiser reserve until a fundraiser goal is met. Each donation triggers the creation of 2 tokens: The first token we can call the title token, and it represents the donation amount given. (eg. if you donated 10 SAI, a title token worth 10 SAI is created, basically it’s an IOU that can be traded back for SAI). More on title tokens in a bit. The second token is a voting token and it would be used for voting and governance. This token is given to the donor unless the donor chooses a representative, gives it back to the charity, or excludes themselves from the system. Once a fundraiser SAI goal is met title tokens begin to be distributed to hospitals according to the voting that has taken place by our governance model. Hospitals receive title tokens and then decide how to allocate them amongst their volunteers. Volunteers then trade title tokens for SAI from the charity SAI reserves.

So why introduced this title token complexity to the system? Because they are a new standard for a hypertrackable token. Each title token minted keeps track of it’s history on the blockchain by making use of Ethereum’s event logs, a title token always keeps track of its originator (the donor). The donor can log on to an app and see everywhere her donation has gone. This wouldn’t be possible if we simply transferred SAI from charity to hospitals to volunteers. With SAI (or any other cryptocurrency) there would be a pool of donations, and donors would be able to calculate what percentages went where by looking at the ledger. Donors, wouldn’t be able to see where their exact donation ended up.

We think, creating this level of transparency would make donors feel more comfortable about giving. Applications for the title token standard go beyond donations, they could be used to solve supply chain problems.

Prototyping This at a Hackathon

Recently I had the chance to prototype this idea at ETHWaterloo, the largest ethereum hackathon in the world. For 36 hours Matt Lockyer, Tomas Vrba, Michaelangelo Yambao, and I put together what we ended up calling “The DAC.”

Ethereum and blockchain is a relatively new space and we were surprised at the tooling available. We were introduced to SAI by the MakerDAO team. We entered and won first place in their API prize for our use case for the SAI Stablecoin. We were also introduced to the 0x protocol which we used to do Ether to SAI conversions. The rest of our stack included using the Truffle framework coupled with Vue.js which allowed us to quickly put together a UI.

I had never been to a hackathon before and ETHWaterloo was a great first experience. The organizers did an amazing job. Our team did an awesome job putting a prototype together, you can see our devpost entry and you can checkout or contribute to “The DAC” on github.

I hope that as technology evolves, regulators catch up, and adoption grows that we will see a real life decentralized autonomous charity in the wild. If I have it my way, we will help build it here at Viget.