Stake & Share is a platform allowing people to make automatic donations to their favorite charities and NGOs, without having to spend money.
This project was created during the Haks 2023 Hackathon and was awarded the 2nd place, the prize for the most innovative project and the prize for the best JSLigo smart contract.
The project is based on the Tezos blockchain, allowing donators to use a process named staking to delegate their tokens to a baker that will generate an income from it. This income will then be redistributed to the charities chosen by the donator, allowing them to receive donations without the donator having to spend money.
Stake & Share allows charities to create a profile on the platform, which will then be displayed to donators who can delegate XTZ tokens to them to generate an income.
The tokens delegated by the donators are not given to the association, and can be withdrawn at any time. The association will receive rewards based on the amount of tokens delegated to them, and how much time they are delegated.
As a user of Stake & Share, the application can be accessed through this deployed MVP, which is using this smart contract
If you want to run the project locally, please follow the instructions below.
In order to run the project locally, you will need to install the following dependencies:
💡 To test the project, we recommend using the Tezos ghostnet. You can find more information about it here
There is two main steps to launch the project:
Stake & Share has its own smart contract, written in JSLigo. Here is a command to compile and deploy it:
make -C contract/ && make -C contract/ deploy
💡 You can use better-call.dev to track your smart contract.
Now that the smart contract is deployed, you can run the application using docker.
In order to do so, you will need to create an .env
file at the root of the project, containing the following
variables:
NEXT_PUBLIC_CONTRACT_ADDRESS=<your smart contract address>
Then, you can run the application using the following commands:
docker build . -t stake-and-share:latest
docker run -p 3000:3000 stake-and-share:latest
Finally, you can access to your application using this link 🚀
The application is divided in two parts, depending on whether you are a donator or an association.
The first step is to connect your wallet to the application. You can do so by clicking on the Connect button on the top right corner of the screen.
As a donator, the application will display a list of charities, allowing you to choose which one you want to support.
Once you have chosen an charity, you can click on the Support button, which will open a modal allowing you to choose the amount of tokens you want to stake.
As mentioned before, the tokens you deposit through the applications are not given to the charity, and you can withdraw them at any time, partially or totally using the Withdraw button.
As a charity, you can create a profile on the platform, which will be displayed to donators. After connecting your wallet, you can click on the Start as charity button, which will open a modal allowing you to specify your information.
For now, only the name is required, but this might change in the near future.
Once your association is created, it is automatically referenced on the donators page, who can start to stake their tokens for your association. You will then accumulate staking rewards based on the amount of tokens people stake for you, and you can retrieve the amount of rewards you have accumulated on your dashboard.
Finally, at any moment, you can withdraw the rewards by clicking on the Claim button.
On the Tezos ghostnet, you can generate tokens and send them to your wallet using a faucet.
Nathan Flattin |
Yanis Boumedad |
Florian Lauch |
Adam Deziri |
Mohammed Jbilou |
Reza Rahemtola |
---|