ethPulse

Web3.0 decentralized and incentivized polls & surveys to power community-driven decisions.

ethPulse

Created At

ETHOnline 2025

Project Description

dPulse — Decentralized, Incentivized Polls & Surveys

dPulse is a Web3-native toolkit that lets any project, DAO, or app create polls and multi-question surveys, target the right respondents, and automatically reward participation on-chain. It solves three persistent problems in community research: (1) low-quality, sybil-driven responses, (2) painful/manual reward distribution, and (3) poor interoperability with the rest of a project’s on-chain stack.

What it is

A modular, EVM-compatible protocol and dApp that:

  • Creates “Projects” (containers) that hold both single-question polls and multi-question surveys.
  • Gates participation with pluggable identity/reputation signals (e.g., token/NFT/POAP ownership, allowlists, EAS/Gitcoin-style attestations, off-chain credential proofs).
  • Incentivizes responses with native ETH or any ERC-20, using built-in escrow + payout flows.
  • Automates reward swaps (optional): respondents can accumulate small rewards and withdraw once a minimum threshold (e.g., $10) is reached, receiving the token of their choice via an aggregator/bridge (e.g., SideShift/DEX route), reducing dust payouts and gas waste.
  • Prevents fraud & double voting with flexible modes: open voting, allowlisted voting, one-wallet/one-vote, and an anonymous mode (commit-reveal now; ZK/Semaphore-style proofs on the roadmap).
  • Streams results in real time and exposes clean APIs/ABIs for dashboards, bots, and integrations.

Why it matters

  • Higher-quality insights: You choose who can respond and how often, aligning incentives with proof of personhood, skin-in-the-game, or community tenure.
  • Operational simplicity: No more spreadsheets or manual airdrops—rewards and settlement are on autopilot.
  • Composable by default: Everything is on-chain or hash-anchored, so downstream tools (analytics, governance, CRM, Telegram bots) can subscribe and act.

How it works (flow)

  1. Creator sets up a Project → defines poll/survey, target audience, reward pool (ETH/ERC-20), eligibility rules, response window, and min-withdrawal threshold (optional).
  2. Respondent connects a wallet → passes eligibility checks (tokens, attestations, allowlist).
  3. Respondent submits answers → on-chain event and/or off-chain payload (IPFS/Arweave) with on-chain hash; gas-optimized pathways are available.
  4. Protocol validates entry → enforces uniqueness (per poll rules) and credits escrowed reward balance to the respondent.
  5. Withdrawal → when balance ≥ threshold, respondent withdraws in their preferred asset via auto-swap; otherwise, direct token withdrawal is always available.
  6. Results → creator reads live tallies, filtered cohorts, and exports.

Key features

  • Projects, Polls & Surveys: one space to manage all research.
  • Flexible question types: single/multiple choice, Likert scale, free-text (hashed), numeric.
  • Targeting & gating: ERC-20 balances, NFT/POAP holds, allowlists, attestations.
  • Incentives engine: per-response fixed reward, tiered rewards, or capped pools.
  • Escrow + Auto-Swap (optional): batch small earnings; withdraw as selected token.
  • Anti-sybil modes: per-wallet cap, per-identity cap, commit-reveal, anon mode roadmap.
  • Developer-friendly: ABI, REST/Graph endpoints, webhooks, and event indexes.
  • Auditable & exportable: all critical state verifiable on-chain; results export.

Technical architecture (MVP)

  • Smart contracts (Solidity, EVM):

    • ProjectsRegistry (UUPS-upgradeable): create/manage Projects.
    • PollsAndSurveys (modular): store metadata refs (IPFS/Arweave), rules, and state.
    • RewardsEscrow (ERC-20 & ETH): credit balances; enforce min-withdraw; payout.
    • Access/Gating module: pluggable checks (token/NFT, allowlist, attestations).
    • Event log for indexing and analytics.
  • Data model:

    • On-chain: poll/survey config, rules, merkle roots/hashes, tallies, reward ledger.
    • Off-chain (content): question text, long answers, attachments → IPFS/Arweave, anchoring content hash on chain.
  • Indexing & APIs: a lightweight indexer + API/Graph layer for fast queries and dashboards.

  • Wallet UX: EOA support; ERC-4337 account abstraction (roadmap) for gas-sponsored flows.

What’s novel

  • Reward Auto-Swap + Threshold Withdrawals: designed for micro-rewards without dust.
  • Research-grade gating: mix on-chain signals and attestations to target the right cohorts.
  • Both polls and multi-question surveys under one on-chain roof, grouped by Projects.

Example use cases

  • DAO governance temperature checks with token-weighted or one-member-one-vote.
  • Protocol UX research: survey users who actually used a feature/NFT.
  • Partner marketing: pay qualified respondents in the asset they prefer.
  • Hackathons & grants: fast community feedback with verifiable participation.

Current status (hackathon scope)

  • Core contract design (upgradeable, modular) and schema.
  • MVP flows for create → respond → reward → withdraw.
  • Minimal indexer and dashboard for live results.
  • Optional auto-swap integration path and min-withdraw mechanics.

Roadmap

  • v0 (Hackathon): core contracts, Projects, polls/surveys, rewards escrow, basic gating, dashboard.
  • v1: auto-swap withdrawals, richer question types, analytics API, role-based team access.
  • v2: anonymous ZK voting mode, ERC-4337 gas sponsorship, advanced cohort targeting, integrations (Discord/Telegram bots, governance frameworks).

How it's Made

How it’s made — dPulse (Hackathon Version)

Core Goal: Build a minimal but functional decentralized polls & surveys dApp where:

  • Creators can set up a poll/survey with a reward pool.
  • Respondents can answer and automatically earn small token rewards.
  • Results are visible on-chain and in a simple dashboard.

Tech Stack

  • Smart Contracts (Solidity, Hardhat)

    • PollsContract: create polls/surveys, store metadata (IPFS link), and record responses.
    • RewardsEscrow: hold reward tokens (ETH or ERC-20) and distribute per valid response.
    • Simple access control (poll creator vs responder).
  • Storage

    • Poll & survey text/questions → stored on IPFS.
    • Only hash + link stored on-chain to keep gas low.
  • Frontend

    • Next.js + React for the web app.

    • wagmi + RainbowKit for wallet connections.

    • Basic flows:

      • Create Poll/Survey
      • Respond to Poll
      • View Results
  • Indexing

    • Minimal Node.js listener that reads contract events and pushes to frontend (optional; can also read directly from contract).

Features Built

  1. Create Poll/Survey — set title, questions, and reward pool (ETH/ERC-20).
  2. Respond — connect wallet, submit answer, and get credited a reward.
  3. Reward Distribution — every valid response earns a small token reward directly.
  4. Results Dashboard — tallies displayed live from contract events.

Hacky/Notable Bits

  • Kept it lean: only store what’s essential on-chain (hashes, tallies, rewards) and offload content to IPFS.
  • Escrow payout logic: simple balance ledger that transfers tokens immediately (no thresholding, no auto-swap for now).
  • Gas-friendly design: answers encoded compactly (multiple choice → numbers, free-text → hash).

✅ This stripped-down version is MVP-ready for ETHGlobal:

  • Shows on-chain polls & surveys.
  • Demonstrates automatic incentives.
  • Keeps contracts small, auditable, and deployable fast.
background image mobile

Join the mailing list

Get the latest news and updates

ethPulse | ETHGlobal