Skip to content
Perfect Pool

Perfect Pool

Revolutionizing bracket-style prediction games through blockchain technology and dynamic NFTs.

Created on 10th June 2024

Perfect Pool

Perfect Pool

Revolutionizing bracket-style prediction games through blockchain technology and dynamic NFTs.

The problem Perfect Pool solves

By applying blockchain technology, Perfect Pool optimizes the popular bracket-style prediction game, offering a seamless, trustworthy, and engaging experience for users.

Key Issues Solved:

Simplified Management: Traditionally, organizing bracket games requires significant time and effort from the organizer, who must collect money, receive the brackets, track results, and distribute prizes. Perfect Pool automates these processes, making it easy for anyone to set up and manage a game.

Enhanced Trust: Participants in traditional bracket games need assurance that all brackets are submitted on time and that no one manipulates the game. By using blockchain, Perfect Pool ensures transparency and immutability, eliminating the need for trust among participants.

Real-Time Updates: Perfect Pool issues dynamic NFTs representing each submitted bracket, which automatically update after each round to reflect the user's performance. This provides real-time feedback and ensures participants are always informed about their standing.

Streamlined Prize Distribution: The platform automates prize distribution so a user just need to click a button and make a transaction to receive the prize.

Challenges we ran into

Perfect Pool aims to provide entertainment with security and transparency, using three layers: frontend, backend, and smart contracts. We faced several onchain challenges. Implementing automation with APIs like Tenderly and CoinMarketCap was essential but difficult. Contract size limits forced us to split dynamic NFT metadata across multiple contracts. Creating a dynamic prize distribution system using onchain data, NFTs, and event-triggered actions required a robust architecture. Developing a transparent onchain bracket system was also challenging due to large transaction volumes causing many reversions.
On the backend, we encountered difficulties in choosing a secure connection method and defining an architecture that ensured onchain logic. Backend is built on AWS, exposing GraphQL APIs for frontend flexibility. Decoding byte returns from smart contract functions was initially problematic as the web3 library did not meet our needs. We implemented temporary workarounds until newer web3 versions addressed these requirements. Establishing a reliable WebSocket connection between the frontend and backend for real-time updates was complex and required careful handling of asynchronous events.
Frontend challenges included creating dynamic brackets for the tournament system that update in real-time, especially when synchronizing with on-chain data. Ensuring a responsive and intuitive user interface that handles real-time data without performance issues was essential. We encountered several bugs along the way. The system allowed only 20sec of script execution, limiting operation complexity. Large transaction data when determining and updating games caused many reverted transactions, requiring us to split iterations with event-triggered actions. Testnet RPCs frequently failed during deployment and automation. Contract size limits forced us to split SVG metadata into multiple contracts, and working with SVG code to build metadata required continuous refinement.

Tracks Applied (2)

Coinbase Smart Wallet

Our project aims to simplify the onchain experience. By integrating Coinbase's smart wallet, mobile users can easily acc...Read More

Gaming Track

Perfect Pool has everything to become the ideal consumer app to popularize prediction games. Combining blockchain techno...Read More

GAMING with thirdweb

Cheer Project

Cheering for a project means supporting a project you like with as little as 0.0025 ETH. Right now, you can Cheer using ETH on Arbitrum, Optimism and Base.

Discussion

Builders also viewed

See more projects on Devfolio