
Charitea
A decentralized crowdfunding platform.
About
The problem it solves Existing crowdfunding platforms like GoFundMe require a lot of trust. We aim to minimize that trust by decentralizing the process through utilizing the blockchain and ZK technologies (via World ID). We were also inspired by a recently viral local app called "SedekahJe" which is a platform where people can scan QR codes to donate to mosques and public centers. They faced a problem where people would upload their own bank account QR codes and maliciously exploit the trust from people for their own benefit. We believe that Charitea can solve this problem by introducing blockchain and World ID technology to promote transparency and minimize trust.
How it's made
Challenges we ran into We ran into a problem when trying to integrate a World ID action into our app. Performing an incognito action requires you to commit a "signal" input to your proof. This process spanned over two different contexts; the client and the server. The client generates the proof and the server verifies it. In both of these processes, you would need to input the signal. However, there was one subtle difference that we overlooked (which caused us a lot of debugging time). In the client, you would have to input the raw signal, on the server, when verifying the proof against the World ID verifying endpoint, you would have to supply __signal_hash__. The problem was that we were supplying the same raw signal in both cases. We ended up fixing it by utilizing worldcoin's library to act as the middlemen to call the verifying endpoint for us and it worked! There was a missing hash step in between there that we missed and we couldn't figure out how to do in Bun.