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, and anywhere.
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.
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/