project screenshot 1
project screenshot 2
project screenshot 3

Free the Aid

Free the people from dictators and warlords. Give them direct transparent access to humanitarian aid.

Free the Aid

Created At

ETHGlobal Sydney

Winner of

trophy

Worldcoin - Best Public Goods Use Case

Project Description

Problem: A lot of humanitarian aid is stolen by oppressive regimes, warlords, dictators and terror groups. They use the stolen aid to maintain control over the population (eg: support us or starve). Donor governments and organizations are left with a hard choice.

  1. Ignore the suffering because aid will be stolen
  2. Give aid anyways hoping some will go to the intended recipients. However, this empowers the regimes who take the aid since they have greater resources and control over the population The second option is short term alleviation but empowers oppressive regimes to continue taking advantage of its residents.

Solution: Free the Aid

  1. Each user signs up for Worldcoin authentication. This only allows one signup per user since Worldcoin Orb authentication allows only one signup per human member.
  2. Aid recipients receive aid from UN distribution stations by authenticating the aid action (eg: grain-20240504). Attempts to authenticate twice by same user is rejected.
  3. Recipients can vote for what aid they want more of for next distribution. This ensures aid is what recipients need most. Quadratic voting is used to more accurately reflect need. This voting mechanism can be adjusted for other community questions (eg: future elections)
  4. Donors, both countries and individuals, can view the voting results transparently. Donors can donate to specific pools (eg: donating to the rice pool to fund rice procurement or the hygiene pool to fund toiletries procurement). We use Unlimit to allow for universal method donations (users can donate EUR/USD/AUD/etc which gets converted to crypto for country-agnostic funding).

How it's Made

We started with the Worldcoin Cloud ID template, which was very useful for starting the Worldcoin integration. Worldcoin's anti-sybil framework is core to our project in ensuring aid gets delivered to end users and helping free the people!

We modified the initial template to take in signal (metadata to be included with the app and action data, verified later via proof). The proof check (via cloud) checks the signal as well to ensure the whole payload is verified.

A challenge we ran into was the Cloud testnet server had an IP based rate limiter. Since many people at the hackathon were developing on Worldcoin, this limit was reached and prevented additional testing. This increased the importance of thinking through code manually since we couldn't trial and error test it.

For nouns integration, the font integration presented some challenges. We used mui for material react components, so to integrate font changes meant changing head level fonts at top of our manual text and also looking into overriding different package fonts. We eventually figured this out with ThemeProvider for mui package but the documentation wasn't clear so we had to do some guesswork.

If we were doing straight voting, a SQL database would've made more sense since we could easily sum across categories to tally up votes. However, we wanted to leave open the possibility of quadratic voting and other metadata so we decided to go with document storage via mongodb. Thus the points used for voting can be tallied either straight or quadratically via code (instead of via SQL) leaving flexibility (at the cost of performance).

Unlimit integration was fairly straightforward. We could have opted for the more technically challenging integrations but we wanted to prioritize user experience and low maintenance, so we opted for the hosted solution.

background image mobile

Join the mailing list

Get the latest news and updates