A Bit Of Charity attempts to simplify and incentivize the processes of donating crypto currency to charitable organizations by serving as an intermediary. We integrate these transactions into an open smart contract on the Ethereum blockchain, so that the donor isn't required to put his trust in our ogranization alone. As A Bit Of Charity is also designed to be an NGO, we aim to simplify the process of getting tax deduction for donations made with crypto currency by issueing our own donation certificate (for tax purposes) and serve as an intermediary in this area as well.
The simplify the process of donating crypto currency we, setup a small webapp which allows the donor to distribute his Ether between multiple charitable organizations in the same transaction.
The incentivization of the donor is to be done via a special ChariBit Token, which he or she gets in return for its donation. These tokens can be used to get access to or price reduction for on special environmental events or sustainable trips provided by our partner organizations.
A Bit Of Charity is a blockchain project which was created in February 2019 during the BETH Hackathon at ETH Zurich.
It consists of a smart contract written in Solidity and a small (mostly) static webapp to showcase some of its functionality.
This following things are required to run this project:
- Metamask Extension for your browser
- Ganache to run a local blockchain
- Python to serve as a simple backend for the webapp
To setup the webapp:
- Start a terminal, navigate to
webapp/
and start a python webserver withpython -m SimpleHTTPServer 8000
. - Open localhost:8000.
To setup the blockchain:
- Start Ganache. You might want to increase the gas limit.
- Change the network of metamask to your local one (Ganache) and import one of the generated addresses from Ganache into Metamask.
- Insert six addresses from Ganache into
charity_accounts
on the first line ofwebapp/js/donations.js
. - Open the Remix Online IDE and import the contracts from
smart_contracts/contracts/
. - Select a suiting compiler (version 0.5.2) and compile the contracts.
- Run the IDE with 'Injected Web3' and deploy the
ABitOfCharity
contract (you might have to increase the gas limit on Remix as well). - Copy the address of the contract and insert in line 24 of
webapp/js/donation.js
. - Add six organizations to the contract. You can either do this through Remix or by uncommenting lines 26 to 28 in
webapp/js/donations.js
and visiting localhost:8000/donate (after you have started the webserver)