Inspiration
We are solving our own problem _ as our teammates are NGOs founders themselves, we are trying to tackle the problem that we and other fellow volunteers in Ukraine have _
What it does
Gamifies philanthropy _ motivates people to donate regularly by giving them valuable digital rewards and a public proof of their social good (e.g. engrave their name on a ballistic plate)_
How we built it
The core of saviors architecture is the Donations smart contract. While very simple, it abstracts the logic for donating and redeeming rewards so other smart contracts can easily utilise that functionality without having to reconstruct a history of transactions and changing balances. Users should be able to donate whatever they are willing to donate and whenever. This could mean a user donates 0.1 eth today and an additional 0.15 etc tomorrow, resulting in an accumulated balance of 0.25 eth.
As we strive to onboard new companies and nft projects onto our platform on a rolling basis and tie rewards to the total donated amount, rather than the amount donated in the current block, we needed a way to store and increase a users donated amount .
The Donations smart contract stores and accumulates the amount of ETH a user has donated. Why does this simple logic warrant its own smart contract? Because from an external smart contract perspective, it’s impossible to retrieve the accumulated donated amount. If we didn’t utilise a smart contract, it would really just be sending funds from one EOA to another EOA that receives donations. In this case, external smart contracts like ERC-721 implementations would not be able to reconstruct a history of all donations made by a user.
Challenges we ran into
One of the challenges we had with Saviour was to come up with an architecture that is both easy and simple enough to be used by external contract we ended up with two small contracts that are fairly simple but powerful one used together, the first contract keeps track of users donations regardless of how many times the user sent funds, the second, CharitableNFT contract makes it simple for nft projects to hook into the donations contract, augmenting NFTs it with the functionality to only be mined once a donation threshold has been reached.
Accomplishments that we're proud of
What we learned
Forge is easier to develop with than Hardhat.
What's next for savior
- Collect the critical mass of companies / influencers that will participate in the project with their NFTs
- Create and manage their NFT collections
- Onboard all the NGOs in Ukraine that need funding and list them on the platform
- Launch a general marketing campaign and the individual promo with each company / influencer to attract their audience to the platform
- Make a super easy guide on how people who do not have experience with Web3 can also take part._
Log in or sign up for Devpost to join the conversation.