GiftBox - Decentralized crowdfunding platform that rewards donors

Project Name: GiftBox
Project Track: Web3
Team Name: Hackers Guild
Team Member(s): 2 members, @sumitg and @whitewolf
DevPost URL: https://devpost.com/software/giftbox
Project Goal: Decentralized crowdfunding platform which incentivizes donors.
Project Info:

Slides: GiftBox.pdf (85.1 KB)
Whitepaper: GiftBox Hypepaper - Google Docs

Project Website:

Deployed frontend: https://giftbox-testnet.vercel.app/
Project organization on Github: 0xGiftBox · GitHub

Project Contracts:
Contract deployed on Shasta testnet: TRONSCAN | TRON BlockChain Explorer | 波场区块链浏览器

Project Test Instructions: Please make sure to have TronLink installed and unlocked. Also, switch to Shasta Testnet on TronLink. Then just play around the deployed website!
You can create a new fund if you have trx on shasta testnet. To donate to a fund you will need the test stable coin giftbox uses. You can mint it to your address from this link https://giftbox-testnet.vercel.app/mint-stablecoins

Project Details:

We believe crowdfunding and enabling donations at scale could be one of the most impactful ways web3 can contribute towards social good. The building blocks are already there, transferring tokens, voting on proposals, etc. And moreover, in the web2 we’ve already seen that crowdfunding works, e.g. Milaap, Kickstarter etc.

But there are some fundamental problems that these platforms haven’t solved yet.

  • Dependence on centralized middleman
    In traditional crowdfunding platforms, donors have to rely on a centralized middleman to verify if the fundraisers are genuine or not. Also all the usual problems around centralized finance crop up, such as invasion of privacy, dependence on a middleman to handle money, etc.
  • Lack of control around how the donated money is being used
    We have seen lots of cases where people raise a lot of money for some causes, but once the money is donated, the donors do not have any more control over how that money should be spent. In case the donor wants their fund back after some time suspecting a scam, they are usually powerless in that situation.
  • Lack of incentives for the donors
    Donating to a good social cause should be enough incentive in-itself, but the world isn’t perfect. We believe if there were more incentives for donation than just moral satisfaction, we can attract a lot more money towards social goods.

GiftBox aims to solve all of these, and more!

Decentralized platform without any middleman

GiftBox is a web3 app and every logic is handled by a smart contract. Thus there is no chance of any malicious centralised middleman misappropriating donor funds. Every transaction and movement of funds is transparent and available on the blockchain. We believe this will promote more trust compared to its web2 counterparts.

We also plan to add IPFS support for uploading supporting documents, that way every document uploaded on GiftBox would be immutable and stored in a decentralised manner, reducing fraud and increasing trust.

More control around how the donated money is being used

We plan to tackle the second issue by not sending the collected money to the cause directly. Instead, the fund manager will create a withdrawal request for a specific amount of money, on which the donors will vote. If he convinces the donors that there’s a solid use case for that specific amount of money by showing supporting evidence, the request will be granted and he will receive the money. In this way, there is transparency and control around how the donated money is being spent. In case the donors are not convinced that the money is being spent properly, they can reject the withdrawal request, and in the worst case, close the fund and get their money back.

Incentives for the donors

The third issue can be solved by investing the money that’s sitting in the fund into stablecoin yield farming, e.g. providing liquidity to a SunSwap pool. The money earned from that can be given back to the investors in some way.

We plan to give options to the users about what to do with the amount of profit earned from his share of funds.

  • The user can choose to participate in tiered de-fi lottery where a few lucky users will be able to win major amounts of money from the accumulated interests of all the users who opted for the lottery.
  • The user can opt to claim the interest back to his own wallet. This way he can later choose to utilize this amount to donate to another charity, if he wants to.
  • The user can opt to donate the interest generated back to the charity fund from where it was originally generated.

Now let’s see how the typical user experience flow in GiftBox would be for the fund managers and donors.

Typical user flow for a fund manager

  1. Someone wants to raise money for a cause, let’s call him the fund manager.
  2. The fund manager creates a fund on GiftBox, mentioning the cause and providing supporting references i.e. external links to documents.
  3. Once there is some money donated to the fund and he has some immediate explicit reason for withdrawing some money, he creates an withdraw request. In the withdraw request he mentions the amount of money he needs and provides supporting references.
  4. If the donors are not convinced, he uploads more supporting references.
  5. If the donors are convinced and they vote and pass his request, he gets to withdraw that amount of money from the fund.

Tokenomics

For every fund created, GiftBox creates an associated TRC20 fungible token, let’s call this token the fund token. Whenever a donor donates money to the fund, a certain amount of fund token gets minted back to him. This token is primarily used to track how much percentage of total donation is donated by a user. We can use this metric to determine voting power, share of generated interest etc.

At any point, the price of 1 fund token relative to the stablecoin would be:
(TotalStablecoinsInFund / TotalSupplyOfFundToken)

The amount of fund token minted follows the following formula,
FundTokensMinted = StableCoinsDonated x (TotalSupplyOfFundToken / TotalStableCoinsInFund )

This would ensure that the price of the fund token does not change when a donor donates some money to the fund. The price would however change whenever there is a successful withdrawal.

Voting logic

Withdraw requests have to be voted by donors, accordingly they will be accepted or rejected. For a withdraw request to pass it has to satisfy two conditions:

  • Majority vote: More than 50% of the total voters should accept the request.
  • Minimum number of votes: To deter fraudulent behavior, a minimum number of votes as percentage of total donors have to be satisfied, e.g. at least 50% of total donors have to vote.

Typical user flow for a donor

  1. The donor visits the home page and looks through the active funds. He goes to a fund’s page that he likes and wants to contribute to.
  2. He donates a certain amount of stablecoins to that fund.
  3. Anytime after that, whenever there’s a new withdraw request, he comes to the fund page and votes on the withdraw request according to his judgment.

Project Milestones:
Done

  • Smart contract with essential functionalities written and deployed on Shasta testnet.
  • MVP frontend application to interact with the smart contract written and deployed via Vercel at https://giftbox-testnet.vercel.app/
  • Submitted for Tron season 3 hackathon on Devpost.

Future milestones

  • Write yield farming logic in smart contract.
  • Update the frontend to make the UX smoother.
  • Add direct document upload support for references through IPFS.
  • Publish on mainnet and integrate with a real stablecoin e.g. USDD.
  • Hire a professional designer to make the frontend prettier.
29 Likes

How will the vote work?
Is it for instance $1 donated = 1 vote?
Is 50%+1 vote enough to pass the proposal?

Thanks!

2 Likes

loved the logic of the project

2 Likes

Hi @fabsltsa, good question!

  1. Yes, a particular user’s vote weightage will be proportionate to his share of the current amount of money sitting in the fund. So, yes initially when no withdrawal has been made from the fund, 1$ donated equals 1 vote. But later on if some withdrawals has been made from the fund, the equation will change a little bit. I will share the exact tokenomics and voting strategy soon, but overall you got the right idea.

  2. Yes, for a proposal >50% “yes” votes will pass the proposal.

Thank you for the questions!! Please let me know if you have any more questions.

3 Likes

@ElisSenaVatansever Thank you!! We’ll update more info on this project today. There have been a lot of developments and progress made. Thanks for the support!

4 Likes

@sumitg great concept and if you can say how you will give intensives to investors? for example are there different levels based on funds added that will return gift backs similar to go fund me and kick starter?

1 Like

Thanks for the support!

That’s a really interesting and meaningful project. I’m also working on a similar project, and would be glad to discuss it further.
There is something i don’t really understand, why would you redistribute the interests generated by the donation to the donators. They would obviously earn less that they would donate. If you donate, you decide to give away the associated amount, and you would not be interested by the few % of interests generated.

4 Likes

I suggest another approach, the donation should represents the interests generated, but not the deposit that the “donator” lock in the pool. It would be somehow a donation without loosing money. At least that’s the project i’m currently working on.

1 Like

Thanks for your feedback @Claw. You’re right that donators will obviously earn less than the amount that they are donating. As such this won’t be very enticing for many people. We wanted to utilize the stagnant money in the pools by investing it and it made sense to give the option to the donators to get back their interest if they want it (however miniscule).
At the same time, we are exploring giving donators other options such as participating in a defi lottery with the interest money.

Ngl “donate to earn” sounds sus…

Or as he said you could give the interests to the donations, keep investing the initial amount to generate more interests for the donation and the « donators » can get back the initial amount when they want/need to.

For instance, instead of giving $100, I could decide that I will giveaway all the interests that I earn on $1000 for a year. So I lock those 1k in your contract for a year, all the interests go to the donation of my choice. After one year I get the 1k back. With usdd I think it’s still possible to get an apy above 10% so the final donation will be higher than $100 and eventually I get my money back.

2 Likes

@wesleyan haha yeah that’s just us following the web3 x-to-earn catchphrase. A more accurate subtitle could be “decentralized crowdfunding platform that rewards donors”

1 Like

Progress update: first version of the smart contract deployed on Shasta testnet, and integration with frontend has begun.

1 Like

@fabsltsa i believe it makes sense like that. That’s the app i’m building right now. It won’t be submitted for this particular hackathon as it’s not yet finalized, but for the next one! :wink:

1 Like

awesome project interested to see where it goes

2 Likes

Announcement of announcement? Welcome on Tron! :smile:

interesting idea, could u provide more details ?

2 Likes

Greetings sumitg! Your project seems to be missing details on the following. Please add them to your project. Thank you!

Please Include:
Project Info
Project Website
Project Test Instructions
Contract Address

Updated all the details. Thanks for the heads up!