
UPool
Fund together. Grow together.
About
The problem it solves UPool solves the problem of group funding with trust. It enables friends, communities, or travel groups to safely collect, grow, and manage money together, with built-in yield strategies, milestone-based releases, and voting systems. People can use it to: • Plan group trips or events with shared expenses • Collect funds transparently for team goals or projects • Accept donations or investments with optional ROI • Release money only when milestones are verified • Earn passive yield while funds are pooled • Track trust scores to build safer financial collaboration It removes the need for spreadsheets, central managers, or risky PayPal links—everything runs onchain with transparency and security. Smart Contract Address(es) 📋 Contract Addresses (Base Mainnet): - Pool Implementation: 0xad859B1c980c1F14048bCee70bda19C2F2726F1F - Registry Proxy: 0xf8f067c65A73BC17d4D78FB48A774551CBc6C5EA - Factory Proxy: 0x72672fa9EB552e50841a4DaC3637bC328FBDAc0a
How it's made
Challenges we ran into During the deployment process, several significant technical challenges emerged that required systematic troubleshooting and creative solutions. The primary obstacle was gas price optimization for Base mainnet, where initial deployment attempts failed with "replacement transaction underpriced" errors, forcing multiple iterations with progressively higher gas prices (from 1 gwei to 5 gwei) to ensure transaction confirmation. Contract size limitations presented another hurdle, as the original UPoolFactory contract exceeded Ethereum's 24KB deployment limit, requiring careful optimization through reduced compiler runs and enabling the viaIR flag while maintaining functionality. The OpenZeppelin upgrades integration proved complex, particularly configuring the UUPS proxy pattern correctly and ensuring proper initialization sequences across multiple interdependent contracts (Registry, Factory, and Implementation). Additionally, transaction execution debugging became challenging when the test pool creation reverted on mainnet, requiring careful analysis of contract state and parameter validation.