The problem Pool ๐๏ธ A Better Way to Pool Funds solves
Today, other than DAOs like Nouns DAO with treasury management tools, managing group spending is difficult!
Imagine any scenario from a group of friends registering a team for their local softball league to an IRL web3 hackathon event that requires multiple partners to contribute bounties.
๐ฉ๐ฉ๐ฉ๐ฉ๐ฉ
Running IRL events with partners typically requires:
- One responsible party fronting the cash
- Budgeting
- Organizing
- Collecting funds
- Spending funds
- Tracking funds
- Chasing people to pay up
- Asking people for missing information
- Delays in paying out others (like many of us have experienced for hackathon bounties)
This process is cumbersome, puts a lot of extra work on the organizer, and can lead to issues such as not getting paid back. Think about any IRL and/or virtual events that require prize pools like hackathons, eSports tournaments, sports tournaments, pitch competitionsโฆ and even beyond events to anything that needs funds to be pooled in by multiple parties to be co-managed.
๐ก๐ก๐ก๐ก๐ก
Pool is a tool that helps multiple parties manage a pool of funds, making these tasks easier, safer, and more transparent by:
- Enabling a pool of funds to be created before the IRL event, so no one person ever has to front the cash.
- Creating and enforcing rules over how those funds will be distributed, so no one person can misuse those funds.
- Ensuring timely and accurate payouts, so nobody ever has to wait for months (or forever) to get paid back.
๐๐๐๐๐
In the future, we aim to explore a full suite of features like:
- Adding the ability to customize the amount contributed to a pool
- Enable profits to be redistributed back to creators of pool
- Working with providers like Stripe, VISA, Mastercard to get pool-specific virtual cards
- Automating the tracking of payments on chain
- Using ZK to provide multiple levels of access to payments
Challenges we ran into
๐ง Coinbase Paymaster and Bundler ๐ง
- When integrating Coinbase Paymaster and Bundler, there are actually two ways of doing so.
- We didn't know that if the Smart Wallet was external and controlled by an EOA that we have direct control with, we could use 3rd party integration tool such as Pimlico (so we started with this).
๐ง Coinbase Smart Wallet ๐ง
- It works ok for EOA to be used in authorising, but the problem is we are using Coinbase Smart Wallet instead, and the wallet is not capable to generate ECDSA signature (because it's a contract of course),.
- Now, we are trying to create another Smart Wallet on top of Coinbase Smart Wallet (which is not possible).
- Only then will we know the actual way of doing this with Coinbase Smart Wallet is to just use useWriteContracts and useCapabilities from wagmi in combination with Pimlico / permissionless.
- We could have saved some time if we knew the difference earlier.
๐ง Time to Integrate Frontend with Full UX ๐ง
- In other aspects, most of the problem we had is just building out a frontend that is able to work as close as possible to our design.
- We have rethink and redesign user flows many times to make sure UX is smooth other than lot's of bugs fixing and code refactoring.
๐ง Smart Contracts ๐ง