First-price sealed-bid styled NFT auction platform powered by ZK
BlindBids is a decentralized NFT auction platform that leverages zero-knowledge proofs to enable private bidding. Unlike traditional NFT marketplaces where all bids are public, BlindBids keeps bid amounts completely confidential until an auction concludes, preventing front-running and bid sniping. The platform integrates with SP1 from Succinct Labs to provide secure and verifiable zero-knowledge proofs that validate auction outcomes without revealing individual bid amounts. Users can list their NFTs, set minimum bid prices, and optionally restrict auctions to verified developers (using ZKEmail verification).
The system works in three key phases:
Listing: NFT owners connect their wallets and list their tokens with a minimum bid amount
Bidding: Bidders submit private bids that are encrypted and stored securely off-chain
Resolution: When an auction ends, only the winning bid amount is revealed through a zero-knowledge verification process that proves it was the highest bid without exposing other bids
BlindBids includes features for users to manage their listings and track their bids across auctions. A smart contracts handles the secure transfer of NFTs upon auction completion.
Frontend & Backend Infrastructure:
Next.js 15 for the full-stack application, providing server-side rendering and API routes Tailwind CSS with shadcn/ui components for the responsive interface PostgreSQL database with Prisma ORM to store auction data, bids, and user information TypeScript for type-safe code across the application
Blockchain side: Smart contracts written in Solidity NFT functionality using ERC-721 Enumerable, Ownable and URIStorage standards @reown/appkit and wagmi for wallet connection and blockchain interactions Custom endpoints for handling server wallet authentication and transaction signing
Zero-Knowledge Implementation: ZK Email for enabling Developer-only NFTs SP1 from Succinct Labs for zero-knowledge proof generation and verification Rust programs that compile to RISC-V for the zkVM execution environment