project screenshot 1
project screenshot 2
project screenshot 3

zkFund

A platform that enables the right of donation for every user

zkFund

Created At

Scaling Ethereum 2023

Project Description

zk.fund is a platform that allows users to anonymously donate to causes that are meaningful to them. As a consumer, you may not want anyone to see whether you’re donating to X political candidate or Y social cause. We use the ZKSync Network, a decentralized smart contract platform that supports groundbreaking use cases with privacy by default. In order to achieve this level of privacy, they use succinct zero-knowledge proofs. From our background and user stories, we have concluded that over the world there is a need for a tool to make anonymous donations to verifiable and trusted charities and non-profit organizations. Without financial privacy, donating to certain political parties and specific social causes can be dangerous in some areas of the world. What we are proposing to build is a web app for donating to charities/non-profits anonymously, using crypto. We will be creating a system that allows users to make donations, but also have the peace of mind that all charities on the platform are verified to be trustworthy. With both of these aspects in place, it will ensure that people only donate anonymously for their own personal reasons or for privacy/safety. Verifying the charities prevents anonymous donations by bad actors to unethical or illegal organizations (like funding terrorism or facilitating money laundering). For our project plan, the zk.fund team act as validators and will manually verify charities that are requested by referencing the IRS database of non-profits. Beyond this class, there is an option to continue expanding the validator network and open-sourcing the project.

How it's Made

zk.fund is comprised of a few main components, the client, the smart contracts, and the subgraph. The client is build using Next.js, chakra UI, and scss. We are also using front end libraries from wallet connect to handle connecting wallets and signing transactions and the graph to interface with the blockchain.

For the smart contracts, we accomplish 2 main goals - be able to search and donate to a verified charity, and be able to request a charity and allow approved validators to vote to signify their support for that charity. This process is important to prevent non-legit charities receiving funds through zk.fund - which could be exploited for money laundering or other nefarious activities. We still believe that purely anonymous donations is in our projects roadmap. We are looking to open source this in the future and want to ensure that the system is safe from bad actors. We are deployed on the GoerilETH testate, but plan on deploying to the zk.sync network later.

The Graph Protocol is used for indexing and displaying validated and pending charities. This allows us to easily search for charities and get important information about the organization. This also allows us to query for pending charities so that validators can see information, perform their own research, and vote to approve or disapprove that charity.

background image mobile

Join the mailing list

Get the latest news and updates