Title: PoolTogether Bankless DAO Pod
Read the original proposal in Discord
Authors: VΞritas, Grendel
PoolTogetherDAO contacts: Mkkoll, Gio.eth
Date: 4th of August 2021
Summary
PoolTogetherDAO reached out to us with a proposal of a Bankless DAO Pod in a Pool of our choosing.
For those of you who are not familiar with PoolTogether, it’s an OG DeFi protocol that is basically a no-loss lottery. This is made possible by pooling lots of funds together that accrue interest over a certain time frame and then rewarding 1 or a few people with this accrued interest as the prize of the lottery. For more information about PoolTogether, check out their website or read through their documentation.
The proposed Pod is basically a group of individuals within the Pool that plays as 1, so the chance of winning the pool’s prize is increased, but you’ll have to share the rewards with the others in your Pod according to what percentage of the Pod is yours. It’s also more gas efficient to enter as an individual through a Pod: 3x more efficient as opposed to joining a Pool directly.
BACKGROUND
We were approached by PoolTogetherDAO that pitched this idea to us. It’s a great opportunity to collaborate with another DAO to build a product with minimal effort for the Bankless DAO that showcases our involvement in the DeFi space. It’s also a fun recurring thing every week where we have a chance to collectively win a prize!
MISSION & VALUES ALIGNMENT
PoolTogether has been around for a while and has been growing since its inception. Check out this excellent PoolTogether analytics dashboard from Dune Analytics for an in depth dive into PoolTogether V3 analytics. It’s a DeFi protocol that’s established itself as a great product and is easy enough to use for crypto beginners. Having our own Bankless DAO Pod would show to the outside world that we’re involved in the DeFi space and have some skin in the game. It’s a great entry for our own Bankless DAO members who are eager to learn and participate in a DeFi protocol. It would be cool to reference our own Pod inside a future course of OnBoard.
SPECIFICATION
There are a few steps necessary from our side to make this idea a reality.
- We need to choose a pool to join: DAI or USDC, etc.
- There are actually more options than just DAI and USDC, but PoolTogetherDAO advised us 1 of those 2 options, because the other Pools have tokens that are quite specific. Since everyone basically has some DAI or USDC lying around, compared to UNI for example, this is a great option. Besides, the Pool prizes are by far the largest inside the DAI or USDC Pool. Lastly, the $POOL token rewards are the biggest in these 2 Pools and since PoolTogether’s focus is mainly on those 2, the APR will be more stable long term than any of the other Pools.
-
USDC stats
- USDC - prize range over last 5 weeks. $47k → $68k
- Total deposits: ~102 Million USDC
- Yield source: Compound
- Number of weekly winners: 5
- Drawn Mondays 19:00 UTC
- Bigger prizes / less Pool APR 4.76% currently
-
DAI stats
- DAI - Prize range over last 5 weeks. $20k → $25k
- Total Deposits: ~33 million DAI
- Yield source: Compound
- Number of weekly winners: 5
- Drawn on Fridays 19:00 UTC
- Smaller prizes / more POOL APR 7.39% APR
- A wallet address needs to be chosen for the role of basic admin for the pod
- At pod creation, there is the concept of ‘PodManager’ address. This is an address that will be allowed to complete special transactions on the pod, such as distributing any NFT winnings. An NFT cannot be split to the whole Pod, so the PodManager must decide what to do with it.
- This address can be a multisig wallet.
- Since no direct finances are involved with this address (except for a few NFTs in case they’re part of a prize that we won), this document proposes a multisig of 2 or 3 champions of the project.
- Someone or some entity needs to be responsible for the occurrence of the BATCH operation.
- Whenever new users enter the Pod, they’re in a FLOAT state. That means that they’re not eligible for the prizes yet and they don’t increase the winning chances of the Pod either. A BATCH transaction is necessary for those entrants to actually join the Pod. Anyone can run the BATCH transaction, so that doesn’t need to be done by the admin wallet address, but someone or some entity should be responsible for making sure this action happens every once in a while.
- We propose the same people that are managing the admin address should be responsible for this BATCH operation
- We need a basic frontend to showcase our Pod stats, allow for an entry and the admin panel. It’s a fairly easy frontend to make. PoolTogetherDAO can help us with the web3 integrations. Check out an example of r/ethfinance here.
- PoolTogetherDAO is actually working on a similar frontend with our logo and colors on it.
- We’ll need a developer from us looking at the code as a review and host it where we want to host it.
- We’ll need the design guild to look at the design and see if we can make any changes that are not too big so it fits with our branding.
- PoolTogetherDAO is actually working on a similar frontend with our logo and colors on it.
- We need a place to host this frontend. Probably our website will be the place where we want to host this.
- And of course, people that want to join the Pool need to join the pool once it’s set up!
- Each individual only has to do this once and no further action is required. A user can get the funds back at any time*.
-
- There is an earlyExit fee of 1% that falls to 0% over the maxTimeLockDuration as set by the Pool contract. For DAI this is 14 days. For USDC this is 28 days. This is to prevent ‘gaming’ the PoolTogether prize by joining immediately before a drawing then exiting after. However, if there is enough funds in the Pods FLOAT to cover the withdrawal, then the withdrawal will be free with no penalty. This is because the withdrawal will come directly from the FLOAT first before attempting to withdraw back from the main Pool. Remember, the FLOAT is just the deposited funds in the Pod that has not yet been batched to the main Pool. The frontend UI could calculate and show you any exitFee before you initiate the withdrawal tx.
-
- Each individual only has to do this once and no further action is required. A user can get the funds back at any time*.
Resources that we’ll need to make this a reality:
- Design review & possible changes to fit with our branding
- Dev review on the code, web3 integrations, used contracts & put the code where we’re going to host it
- Coordination between PoolTogetherDAO and us (Currently VΞritas & Grendel)
Pod Contract permissions
Permissions of the onlyOwner and onlyManager Pod commands
Below is a description of the Pod Contract calls that can only succeed as an Owner or Manager.
Owner is by default the address that creates the pod from the PodFactory contract.
Manager is by default specified the same address as the Owner unless specified at pod contract creation or at a later time. (I.e the manager address can be changed and handed over).
emergencyTokenApproveZero() - onlyOwner - zeroes the token allowance of a specified address.
setManager() - Owner - allows setting of a new Manager address
setTokenFaucet() - Owner - Set TokenFaucet reference (if prizepool faucet is updated) Would be called for example if the PoolTogether devs change the Prize APR from POOL to some other contract
setTokenDrop() - Owner - Setup TokenDrop reference
withdrawERC20() - Owner or Manager - Withdraw non-core (token/ticket/tokenDrop.asset) ERC20 to Pod manager. Withdraws an ERC20 token amount from the Pod to the PodManager for liquidation to the token and back to the Pod.
withdrawERC721() - Owner or Manager - Withdraw ER721 token to the Pod owner, which is responsible for deciding what/how to manage the collectible.
renounceOwnership() - Owner - Leaves the contract without owner. It will not be possible to call onlyOwner
functions anymore. Can only be called by the current owner.
transferOwnership() - Owner - Transfers ownership of the contract to a new account (newOwner
).
FINANCIAL IMPLICATIONS
Since this is probably quite a small effort from our side we might just want to cover the required resources from guild funding. I (VΞritas) am willing to do the coordination work I’m doing for this project for free. If design & dev resources turn out to be bigger than I expect right now, we’ll need to scope the required hours and request a little funding for those resources.
It should be noted that we’re all eligible for prizes as individuals when we’re joining the Pod and have higher chances of winning something because we’re grouping our funds together. Besides that, we’re receiving yield in the form of $POOL, which currently sits between 5% - 7% depending on the Pool. We receive the $POOL rewards regardless if we win or not. The $POOL rewards are in proportion to your investment compared to the total of the Pod. Each individual can claim their $POOL rewards, but only after the rewards have been claimed from the Pool to the Pod first. Anyone can claim from the Pool to the Pod, but it will cost extra gas fees for that person.
Example of how this looks to an individual when the $POOL rewards have been claimed from the Pool to the Pod.
BRAND USAGE
The proposal proposes to host this project on our own website as a showcasing project to signal to the outside world that we’re involved with DeFi protocols and make inter-DAO collaborations happen. It shows we’ve skin in the game and know our way around this space. It would be trivial to get the core PoolTogether team to uniquely name the Bankless DAO Pod to whatever name we want in the app.pooltogether Pools userlist, the same as ethfinance did. This would make discovery and ‘legitimization’ of our pod much greater. See the example of ethfinance below.
SUCCESS METRICS OR KPIS
- Amount of people joining the Pod
- Amount of capital in the Pod
- Comparison to other Pods → Are we going to be the largest Pod?
- Ethfinance is in the DAI Pod; there are currently no other Pods besides the official ones from PoolTogether. We’re still early!
NEXT STEPS
- Vote for the proposal: Yes/No/Needs refinement
- Choose a Pool to join: USDC or DAI
- Reviews from design & dev on the made frontend for us by PoolTogetherDAO (after the previous 2 action items)
SQUAD BACKGROUND
VΞritas (Bankless DAO): Bankless member since early 2020. Part of the Bankless DAO since its inception. Mostly involved with the Education Guild and the OnBoard project. I’ve been a PoolTogether user since mid 2020, which was 1 of my first DeFi protocols that I’ve used. I’ve used the example of PoolTogether many times to explain to friends and family that don’t know anything about crypto what kind of possibilities there are in crypto besides Bitcoin & buying random coins.
Grendel (Bankless DAO): Very active contributor to the Bankless DAO. Involved in multiple Guilds (Translator’s, Ops, Marketing & BizDev) and part of the Grants Committee.
Mkkoll (PoolTogetherDAO): To give some background about myself, I’ve been involved with ETH since late 2018 as a casual observer and investor. This is my first foray into DAO participation and I’m loving it. This is the future of work! PoolTogether was the first Defi protocol I used where defi ‘clicked’ for me. Probably the best teachable moment I’ve had in all of crypto to understand the power of what we are building. I am a frequent poster of r/ethfinance and avid Daily Gwei and Bankless listener too.
Gio.eth (PoolTogetherDAO):
- I am interested in a PoolTogether Bankless DAO Pod
- I am NOT interested in a PoolTogether Bankless DAO Pod
- I’m interested, but the proposal needs refinement (comment why)
0 voters