Video thumbnail

Proof the Pump

This project uses zero-knowledge proofs to verify user ETH balance meets thresholds for token pump.

Proof the Pump

Created At

ETHGlobal Trifecta - Zero Knowledge

Project Description

This project implements a privacy-preserving DApp that allows users to verify their ETH balance meets specific thresholds without revealing the actual amount. The application enables:

Creating Token Pumps: Users can define token pump events with specific ETH balance requirements.

Zero-Knowledge Verification: Using zk-SNARKs (Zero-Knowledge Succinct Non-Interactive Arguments of Knowledge), users can prove they meet the required ETH threshold without disclosing their exact balance.

On-Chain Verification: The proofs are verified on-chain using a Solidity verifier contract generated from ZoKrates.

The project consists of:

A React frontend for creating pumps, generating proofs, and verifying eligibility A ZoKrates circuit for balance threshold comparison A Solidity verifier contract for on-chain proof verification Support for the ethers.js library for wallet integration The zero-knowledge circuit takes a private input (user's ETH balance) and a public input (threshold amount), then outputs whether the balance is greater than or equal to the threshold. This approach preserves privacy while still enabling verification of eligibility requirements.

The verification process happens in two steps: first generating a proof client-side, then verifying that proof on-chain through a smart contract. The implementation demonstrates the practical application of zero-knowledge proofs to solve a real-world privacy concern in crypto communities.

How it's Made

Components Frontend: React + Vite application with wallet integration via ethers.js

ZK Circuit: Simple ZoKrates circuit that compares a private ETH balance to a public threshold

Verifier Contract: Solidity contract that verifies proofs on-chain

Implementation Flow User connects wallet → frontend captures ETH balance (private) User selects a pump with a minimum ETH threshold Frontend generates ZK proof (balance ≥ threshold) Proof submitted to verifier contract (without revealing balance) Contract verifies eligibility and records participation Technical Stack Frontend: React, Vite, ethers.js ZK Proofs: ZoKrates, circom libraries Smart Contract: Solidity verifier using pairing-based cryptography Storage: Browser localStorage (demo only) This architecture ensures users can prove eligibility without revealing their actual ETH balance.

background image mobile

Join the mailing list

Get the latest news and updates