Charitable giving can have a huge impact on causes and organisations we support. It is estimated that in 2017, $410B was given to charitable causes. However, how much of this comes from large philanthropy efforts (aka Bill & Melinda Gates foundation) vs the collective effort of individual giving? Does it effect how much we care about certain causes if we don’t actually donate to help those causes? How can charities create ‘skin in the game’ dynamics to increase the participation and engagement of individual donors?
In other words, is there a way for charities to create viral donation mechanisms with inherent network effects, that maximise both the amount donated and the number of people donating?
For example, if I donate to a cause such as Wikipedia, my actions towards that cause generally end after I’ve donated. If someone asks me about it, I might mention that I support them, but will I try to convince my friends to also help donate to Wikipedia? Besides the intrinsic motivators for myself, there are no extrinsic reasons for me to become an ambassador for Wikipedia’s donation program. This, I believe, is a lost opportunity for Wikipedia.
What if every person who donated to a cause would have a ‘stake’ in the success of that cause? What if we could incentivise early donors to become the greatest ambassadors to causes, and reward them (extrinsically) from the success of each charitable cause? In short, can we create a new, inherently viral model of charitable donations?
Applying crypto-economics to charitable giving
One area of research I’m really interested in is continuous token models, and more specifically, dynamic token bonding curves (DTBC). I believe we can answer all the above questions and create interesting new dynamics by applying DTBC designs to charitable giving.
TL;DR: A donation system where you receive tokens that grow in value, as more donations are made. Depending on what you value, you may ‘exit’ and sell the tokens at certain times, or hold onto them and continue to help grow the number of donors to the charitable cause.
A quick primer on token bonding curves: a smart contract automatically creates tokens when you send it money (in most cases, ether). The smart contract also automatically buys the tokens back from you when you send it tokens, reducing the total amount of money (or ether) that is ‘backing’ the smart contract. The price at which the tokens cost (and are bought back) is done automatically by a formula in the smart contract, with the same price applying to everyone. More in-depth discussion here.
A quick primer on dynamic token bonding curves: similar to standard token bonding curves, however the price of tokens is determined dynamically based on an aspect of an individual, in most cases, the portion of the token supply they currently have. If they have a lot of tokens, they are collectively worth more for that individual. If they have a small amount of tokens, they are collectively worth less for that individual. Depending on each individual’s motivations, they’ll either try to collect more tokens, or they will exit at certain price points, re-distributing the supply portions among current token holders. More in-depth discussion here.
When a donor, Alice, makes a donation to a charity, 90% of her donation goes to the charity while 10% goes into a smart contract to back the bonding curve. As a result, she is awarded 10 ‘charity’ tokens. The 90% that goes to the charity is sent directly to the charity, essentially ‘exiting’ the Bonded Donations system.Alice donates, 90% goes directly to the charity, 10% goes to dynamic token bonding curve. As a result, Alice is minted 10 charity tokens.
Alice now has a few choices:
- Sell the tokens she just received back to the bonding curve (essentially taking back a small portion of her donation). This is not an optimal choice for Alice as the dynamic token bonding curve formula ensures that at this stage, she will only receive approximately 1.25% of her donation back. For more details, see the ‘Technical details’ section at the end of this article.
- Ask her friends to also donate to the same charitable cause. As her friends start to donate, the funds backing the curve will increase, which also increases the value of each token in the dynamic token bonding curve.
— As a bonus, for every charity token that is awarded to a new donor, the same amount of tokens is also created and split among the current token holders (i.e. all of the previous donors).
— In Alice’s case, she has been rewarded for both being an early donor and for convincing her friend, Bob, to also donate.
As more people donate, the bonus pool of new tokens is divided between all previous donors, rewarding them for their early participation and helping to grow the charitable cause.When Charlie donates, the 10 bonus charity tokens are split between both Alice and Bob.
Over time, Alice’s portion of the token supply increases in relation to how early she donated. The value of her tokens also increases, in proportion to the amount of funds that are donated to back the DTBC. Visually:When Alice is the only donor, she can withdraw a maximum of 1.25% of the amount that is backing the DTBC (not the 90% that has already been sent to the charity). As more people donate, the amount she can withdraw by ‘selling’ her tokens increases (blue). The earlier a donor participated, the more they can ‘withdraw’ if the donation campaign grows.
If a large donor (Eveline) comes in and donates a very large amount, Alice (and all the early donors) gain from the large donation and growing success of the charitable cause. Importantly, the large donor cannot take an outsized portion of the charity token supply. The early donors are always rewarded.When a large donation occurs, all early donors portion of the ‘reward’ also increases. The large donor cannot suddenly take control of the charity token supply.
If another large donor (Fred) comes in, the same trend continues. The early donors are rewarded for their early participation (with the bonus tokens), and the new donors receive new charity tokens according to the usual rules.When another large donation occurs, all token portions and funds backing the DTBC are increased proportionally.
At this point in time, Alice may decide that she wants to sell her tokens and exit the charitable cause. In her case, the money she originally donated to the charity has already been sent to the charity, and the 10% that was sent to the DTBC has grown to be more than the original 10%. In effect, Alice has made a ‘profit’ on the 10%, just for being one of the early donors and helping to grow the success of the charitable cause.
At the same time, because Alice sells all her tokens (we call this ‘liquidating’ your tokens), all other early donors increase their portion of the supply, resulting in their tokens being worth more. For example, see the growth of Bob’s value capture (in red) below:Once Alice liquidates her portion of tokens, the portion of the supply for everyone is changed, resulting in Bob being the largest holder of charity tokens (28%), with Eveline (a very large donor — 25%) coming a close second. This is fair, as Bob donated early on, whereas Eveline donated later and donated 10x the amount that Bob donated.
Even though Alice (the first donor) has exited the charitable cause, there are still many other donors who are incentivised to help grow the charitable cause, with most of the funds backing the DTBC remaining untouched after Alice’s liquidation.
If we assume that donations keep coming in and Bob decides to not sell any of his tokens, his portion of the supply will continue to grow. If Eveline eventually liquidates her tokens, then Bob will end up with a large amount of the supply (with each token being collectively worth more over time as the funds backing the DTBC grows).If Eveline eventually liquidates all her tokens, Bob’s tokens will be worth much more as he owns a larger portion of the supply, and the funds backing the DTBC continue to grow.
In the last ‘donation event’ above, the charity (or a philanthropy cause) may decide to add funds directly to the DTBC, creating stronger incentives for the community of donors to continue growing the network of donors. This can be a very powerful way of bringing in more ‘stakeholders’, as some charitable causes require more ‘people effort’ than ‘economic effort’, e.g. political causes. In effect, this could be seen as marketing dollars being used to crowd fund viral growth of a charitable cause.
Advantages of Bonded Donations
There are a few very important advantages I see to this model:
- Active participation in donating is encouraged and incentivised. After you have donated, you are incentivised to actively engage with the community and encourage other people to donate to the same cause. The success of the campaign can grow with more highly engaged donors. You are also awarded (in the future) if the campaign is successful, without it costing the charity anything.
- There is minimal to no interaction or admin cost for the charity. Once this is set up, the ‘stakeholders’ in the charitable cause are incentivised to grow the cause, without needing to interact directly with the charity. This ensures minimal to zero admin overhead for the charity. Charity campaigns may also last many years without the need for the charity to facilitate its growth, if a strong enough community grows from the donor pool.
- Potential donors are strongly incentivised to donate early and often. Instead of the most popular causes gaining more and more momentum (see Kony2012 campaign), the earliest and most passionate supporters are incentivised to seek out new campaigns and help them grow.
- Normal donation mechanisms do not change. If a donor does not care about tokens or growing the charitable cause, they can donate as they normally would. The generated tokens could then automatically be sent to the bonus pool to further incentivise the more active donors.
This particular design hasn’t been deployed on a test net yet, however we have been using a design of dynamic token bonding curves in relation to community building. We call it the Khana Framework.
My latest version of a dynamic token bonding curve function that works as desired (and that I’ve implemented in Solidity) is:The currently implemented Dynamic Token Bonding Curve function in Bonded Donations.
Originally I had wanted to implement a different function for the curve, however due to Solidity’s limitations in fractional exponents and working with decimals, I had to refactor the equation to the one above, which does a ‘good enough’ job.
There is still work to be done on this formula, in particular taking into account integrals / the area underlying the curve for a more accurate pricing function. If you’re good at calculus I’d love to hear form you! 🙏
To see the raw data used in the above graphs, see this Google Spreadsheet. Many parts of the system’s design is customisable, for example:
— increasing the amount of tokens for the bonus pool will more strongly incentivise early donors, or
— increasing the portion of funds sent to the DTBC (currently 10%) may create stronger incentivises for viral growth.
For a working prototype of this concept, see the Github page. It’s being actively worked on so if you are thinking of deploying it, let me know as there is a bit of clean up needed before it’s production ready. 😇
Thanks to the people I met at DevCon that helped me progress the dynamic token bonding curve formula, in particular Sergii K from Consensys!
Also thanks to Simon de la Rouviere for pushing back against the initial design, resulting in the bonus token pool concept that ensures early donors are not ‘inflated’ out.