ZK-DataDAO — Project Story & Overview
Inspiration
In today's data-driven world and AI revolution, high-quality datasets are the lifeblood of innovation. However, data contributors face a massive dilemma: privacy vs. compensation. To contribute to specialized datasets (such as medical surveys, community feedback, or restricted research), users are traditionally forced to expose their personal identities, social accounts, or credentials.
We asked ourselves: What if you could prove you meet all eligibility criteria to contribute to a dataset without ever revealing who you are?
That vision inspired ZK-DataDAO — a decentralized, privacy-preserving data marketplace built on the Filecoin Virtual Machine (FVM) where Zero-Knowledge Proofs (ZK-SNARKs) act as an unforgeable, privacy-first barrier.
What it does
ZK-DataDAO connects Data Buyers/Operators with Anonymous Data Contributors through smart contracts and cryptographic proofs:
- DAO Creation with ZK Barriers: DAO Operators create custom Data DAOs, specify data format requirements, lock a FIL/tFIL reward pool, and define Zero-Knowledge joining constraints (e.g., proving membership in a specific Discord server or community).
- Anonymous Verification: Contributors authenticate via third-party APIs (like Discord OAuth2) locally in their browser. A Zero-Knowledge proof (Groth16 ZK-SNARK) is generated client-side. The proof verifies eligibility without revealing user handles, emails, or personal details.
- Decentralized Storage Deals: Contributors upload data matching requirements to IPFS via Lighthouse Web3 SDK, initiating permanent storage deals directly with Filecoin storage providers via
DealClient.sol. - Automated Reward Distribution: Once contributions are completed, the smart contract automatically distributes the reward pool equally among verified contributors.
How we built it
We constructed ZK-DataDAO using a cutting-edge, 100% decentralized technology stack:
- Smart Contracts (Filecoin FVM): Built with Solidity ^0.8.17 and deployed on Filecoin Hyperspace Testnet (Chain ID 3141) using Hardhat.
DAO.sol: Manages individual DAO instances, capacity, and reward disbursement.DealClient.sol: Interfaces directly with Filecoin's built-in Market Actor (f05) using CBOR encoding for deal proposals and FRC42 method dispatch.verifier.sol: Auto-generated Groth16 verifier contract utilizing the bn128 elliptic curve.
- Zero-Knowledge Proving System:
- Circom 2.0 & Powers of Tau (pot14) ceremony for circuit constraint definitions.
- ZoKrates-JS: Integrated into the browser to compile circuits and compute witnesses on-the-fly without relying on a centralized proving server.
- Decentralized Database & Storage:
- Tableland SDK: Serves as our decentralized, queryable SQL database on-chain (
daos_3141_162anddao_data_3141_164) for indexing DAOs and contributor logs. - Lighthouse Web3 SDK: Handles IPFS pinning and Filecoin storage deal generation.
- Tableland SDK: Serves as our decentralized, queryable SQL database on-chain (
- Frontend DApp: Built with React 18, RainbowKit, wagmi, and viem for seamless Filecoin wallet connectivity and contract interactions.
Challenges we ran into
- In-Browser ZK Proof Generation: Compiling circuits and computing witnesses inside a browser environment using ZoKrates-JS pushed web browser memory limits. We had to carefully optimize circuit size and constraint counts to ensure sub-second proof generation.
- Filecoin Built-in Actor Interoperability: Interfacing Solidity smart contracts with Filecoin native Market Actors required deep-diving into CBOR serialization, handling BigInt conversions, and complying with Filecoin's FRC42 method dispatching in
DealClient.sol. - Multi-State Synchronization: Coordinating asynchronous data flows across Tableland SQL queries, FVM smart contract state, IPFS CIDs, and Discord OAuth tokens without compromising user experience.
Accomplishments that we're proud of
- 🔐 100% Serverless ZK Verification: Successfully implemented end-to-end client-side Groth16 proof generation where sensitive credentials never leave the user's browser.
- 💾 Native Filecoin Storage Integration: Built functional smart contract deal proposals interfacing with native Filecoin storage market actors.
- 🗃️ Decentralized Architecture: Eliminating traditional centralized backends completely by combining Tableland SQL, IPFS, Filecoin FVM, and ZK-SNARKs.
- 🎨 Seamless UX: Delivering a sleek, modern Web3 interface that masks complex cryptographic math behind simple click-to-verify interactions.
What we learned
- FVM Precompiles & Actors: Gained a deep technical understanding of Filecoin's FVM architecture, Market APIs, and EVM compatibility layer.
- Browser-Based Cryptography: Mastered client-side witness calculations and memory optimization techniques for snarkjs and ZoKrates.
- Decentralized Data Management: Learned how to layer Tableland SQL for fast indexed queries while preserving immutable state on smart contracts.
What's next for Zk-DataDao
- 🛡️ Strict On-Chain Proof Enforcement: Pass formatted Groth16 proofs directly into
DAO.sol#joinDAO()to mandateverifier.solon-chain execution before membership minting. - 🌐 Expanded ZK Circuits: Introduce multi-attribute ZK circuits for Age verification (Semaphore/Anon-Aadhaar), GitHub commit history, and Twitter/X social graph proofs.
- 🤖 zk-ML Data Validation: Incorporate Zero-Knowledge Machine Learning (zkML) to automatically verify dataset quality and schema compliance prior to reward disbursement.
- 🚀 Filecoin Mainnet Deployment: Transition contracts and Tableland registry from Hyperspace Testnet to Filecoin Mainnet (Chain ID 314).


Log in or sign up for Devpost to join the conversation.