zkForms is a web3-focused form builder to construct online forms and surveys with multiple question formats, restrictions, and better analysis that can be accessed from any device, anytime, anywhere. Simply described, imagine Google Forms, Typeform, or Airtable on a secure, decentralized, and censorship-resistant network. Let's say you want to survey the general public or the members of a specific DAO. How will you do that? To help ease the pain, you can start using zkForms.

You can create both open forms(which are available for everyone) as well as restricted forms. For restricted forms, it uses the Zero Knowledge proofs and snarkjs to prove that the user owns the private key to the address and is authorized to fill the restricted form.

Inspiration

Developing a survey page with a privacy focus or obtaining anonymous data from DAO participants? Besides, Google, the primary form collection tool, is restricted in many countries and regions. zkForms' goal is to democratize data access and promote censorship-free living.

How it's Made

To save form data, responses, and analytics, zkForms leverages Filecoin and IPFS in the background. We used Web3.Storage to store the necessary data and polygon network to host the smart contracts.

When a user submits a form response, the user's JSON-formatted response is stored on the open, permissionless IPFS network, pinned using Web3.Storage, and the responses are obtained using Web3.Storage's API keys to generate the analytics.

To create the frontend, which includes a form builder, form renderer, and data viewer, we used React, Next.js, TailwindCSS, and RainbowKit.

To provide Zero-Knowledge Proofs that demonstrate the user's membership in the DAO, zkForms also uses SnarkJS and Circom2.0.

You can also generate proofs locally and submit them to the client using the zkForms CLI tool: https://github.com/zkSuite/zkforms-cli.

All the smart contracts and circom circuits are available at: https://github.com/zkSuite/zkForms-core.

Check it out here: https://zkforms.vercel.app/

What's next for zkForms

zkForms currently supports the feature to prove the user's membership in the DAO, but in the next iteration of zkForms, we will add restrictions based on tokens and NFTs. Therefore, soon users can be restricted to filling the form/survey only if they hold a token/NFT for a predetermined period.

Built With

Share this project:

Updates