Video thumbnail

Discovery Roulette

šŸŽ° Discover amazing websites through blockchain roulette! Built on Flow EVM with 10s cooldown.

Discovery Roulette

Created At

ETHGlobal Prague

Winner of

Blockscout - Big Blockscout Explorer Pool Prize

Prize Pool

Project Description

Problem We're Solving: The Web3 ecosystem is rapidly expanding with thousands of DeFi protocols, DEXs, lending platforms, NFT marketplaces, and innovative dApps launching daily. However, discovering quality Web3 projects remains challenging - users often stick to well-known platforms like Uniswap or Aave, missing out on emerging protocols that could offer better yields, innovative features, or unique opportunities. Traditional discovery methods rely on social media hype or paid promotion, creating information asymmetry.

My Solution: Site Discovery Roulette is a blockchain-powered discovery platform specifically designed for the Web3 ecosystem. Built on Flow EVM using Scaffold-ETH 2 framework, it creates a curated, community-driven database of DeFi protocols, exchanges, lending platforms, yield farming opportunities, NFT marketplaces, and other Web3 applications. Users can discover new protocols every 10 seconds through our fair roulette system.

Key Features for Web3 Discovery: šŸ” Protocol Discovery: Find new DeFi, NFT, and Web3 platforms ⚔ Fair Access: Equal opportunity discovery for all protocols 🌐 Community Curated: Web3 builders submit quality projects šŸ”— Direct Integration: One-click access to discovered protocols šŸ“Š Discovery Analytics: Track your Web3 exploration journey šŸŽÆ No Algorithm Bias: Pure randomization without paid promotion šŸš€ Emerging Projects: Discover protocols before they go mainstream

How it's Made

Smart Contract Layer (Solidity on Flow EVM): Roulette Contract: Manages the entire discovery system with functions for adding sites, spinning the roulette, and tracking user interactions. Storage Optimization: Uses mappings to efficiently store site URLs and user discovery history Randomization Logic: Implements pseudo-random selection using block.timestamp and block.difficulty combined with user address for fairness. Cooldown Mechanism: 10-second cooldown enforced on-chain to prevent spam and ensure fair usage. Duplicate Prevention: Tracks discovered sites per user to guarantee unique discoveries.

Frontend Development (Next.js + React): Scaffold-ETH 2 Foundation: Leveraged the complete toolkit for rapid development, including pre-built hooks and components. Modern UI/UX: Tailwind CSS with glassmorphism design, gradient backgrounds, and smooth animations. Responsive Design: Mobile-first approach ensuring seamless experience across devices. Real-time Updates: Wagmi's watch: true feature for automatic data refreshing without page reloads.

Notable Hacks & Innovations:

  1. Smart Randomization: function getRandomSite(address user) internal view returns (uint256) { uint256 randomHash = uint256(keccak256(abi.encodePacked( block.timestamp, block.difficulty, user, sites.length ))); return randomHash % sites.length; }

  2. Efficient Duplicate Tracking: Instead of storing arrays of discovered sites (expensive), we use a mapping of mappings: mapping(address => mapping(uint256 => bool)) public userDiscoveredSites;

background image mobile

Join the mailing list

Get the latest news and updates