Hello everyone.
We are introducing our Proof-Of-Concept work on "GIVE", a distributed donation routing platform. This platform also integrates a novel concept for moving money in the banking networks as a direct result from payment routing on the Stellar ledger.
What makes it distributed is
(1) The system aggregates the "opinions" or "votes" for the donor's portfolio from many sources to give those sources the ability to help a donor direct their donations.
(2) The donors collectively form many "roots" of the system providing distributed intelligence to bring in donations.
(3) The system is designed to compute the distributed donation graph models constantly using many nodes across the internet
(4) Anyone with an opinion, including bots, across the internet can publish a "Channel" which donors can take in to help direct their donations
(5) Donation Channels contain targets to donate to, these targets can be people or other channels.
(6) Channels can be changed at any time by the Channel's manager and that will update the future donation allocations of all donors subscribed
(7) GIVE distributes donations over both time and space; the donor makes regular deposits according to their donation budget; GIVE splits that donation up first into daily distributions, and then to all the targets from the channels in their portfolio.
Channels are a generic term to house the concept of a list of targets, channels might be formed around groups of people, project ideas, tip bots, best of lists, favorite things lists, research interest, random acts of giving, any concept or reason that someone can dream up to collect donation targets under a common channel identity...
Collectively all this information forms a graph we can render and visualize to see what we collectively believe are the important people and places/targets to donate to.
As donors see the renderings, they may choose to reallocate their donations to better reflect what they personally believe would be better uses for their donations.
Those changes alter the donation graph and changes the picture, creating a community feedback loop to help guide donation allocations over the next 6 to 18 month sliding time windows.
Donors always retain control over where their donations are getting allocated, using GIVE enables subscribing to the intelligence of the broader community, and the computation of many microallocations, to direct the donations.
Here is the basic use cases we will be illustrating with our POC stage:
- Users can login and create an account
- By logging in, as a User I receive a "deposit" stellar address, let's call it a "Distribution Account"
- As a User, I can create a "portfolio" (we call this a Channel, as it's really a "distribution channel" for funds)
- As a User, I can add a list of entries and a weight/score for each entry, which will determine the relative weights for how funds will be distributed through this channel
- Entries in a portfolio can be other accounts (e.g. developers, artists, nonprofit organizations etc), but they can also be other portfolios/channels
- I can create one or more Channels, and I can pick which is the "current default Channel" which will be used to distribute any funds that are deposited to my Distribution Account
- Somewhere here, funds are deposited into a user's Distribution account account (say, my "monthly tithing amount", or "the chunk I share after payday" etc.)
- A worker service (ideally, run 1x daily) will traverse the graph of accounts and other Channels in my channel and generate a list of outgoing transactions with the correct weights
- The list of transactions is processed and signed / posted in a safe manner
Tools we're using:
- Stellar
- GunDB
- VueJS for the app/view layer
- IPFS/computes.com (not working yet, but the plan is this will provide the distributed set of workers to compute the daily donation distributions for the donors)
Our goal is that this application be as decentralized as possible, and to give as many and diverse people as possible easy ways to collectively shape our community's donation resources.
The POC will show a functional prototype with the above user stories and will be used to link in the already growing network of potential partners and participating organizations for a more developed, fully functional MVP.