
Sponsors 🫶🏽
Education sponsorship program, using Web3 for delivering education to out-of-school children. A truly global and on-chain distribution system.
About
The problem it solves Globally, 10% of children at primary level (age 6-11) are out-of-school. The mission of elimu.ai is to build innovative learning software that empowers out-of-school children to teach themselves basic reading📖, writing✍🏽 and math🔢. The product built by elimu.ai is Free and Open Source Software (FOSS), and we want to maximize real-world impact by also keeping the cost of _distribution_ as low as possible. Therefore, for the Onchain Summer Buildathon, we built an onchain education sponsorship program. The idea here is to deliver education to out-of-school children by linking together sponsors with distributors. It is often the case that a child is out of school because it costs money to enroll a child to school and to purchase school supplies, but we think that having the opportunity to learn foundational literacy and numeracy skills should be _free of cost_. People who want to support our cause can go to the website we built at https://sponsors.elimu.ai and sponsor the education of one individual child. Once a sponsor sends money, it gets stored temporarily in a smart contract until a distributor picks up the task of installing the learning software on an Android tablet and distributing it to an out-of-school child. All the while receiving transparent status updates on each step of the distribution process. We also achieve community engagement by letting community members approve successful distributions using on-chain attestations with the Ethereum Attestation Service (EAS). This allows for non-technical community members to engage more with the distribution of the software. The sponsor's feeling of an actual real-world impact will truly begin when an out-of-school child receives the learning device and starts her learning journey. The sponsor will then (after data collection) be able to follow the child's learning progress and get a true sense of the positive difference the sponshorship made on the child's life.
How it's made
Challenges we ran into 1. The initial idea was to only do a distribution _after_ a sponsor had funded it. But we realized that it would be useful to design the system so that distributors can do their work _before_ a sponsorship is available, and rather be rewarded retroactively. So we ended up with a solution consisting of two queues—one for sponsorships and another for distributions. 2. We tried using OnchainKit's [`getAttestations`](https://onchainkit.xyz/identity/get-attestations) for fetching attestations made to the EAS scheme that we created, but we weren't able to use that utility function for fetching attestations without providing a specific address. So it was a bit confusing to know if the documentation referred to the _From_ address (attester) or the _To_ address (attestee). Maybe including a code example would help clarify this for future developers reading through the documentation.