Great post, Brendan, and for sake of this response, I’m only going to focus on the Protocol Owned Liquidity piece, as I’ve thought about this in relation to USDC tickets and building liquidity so the TWG could pursue a ticket listing.
Uniswap V3
While I think Uniswap V3 is a great innovation in DeFi, the IL for volatile pairs on Uni V3 can be quite high due to the nature of V3 positions. And we would need to provide shallow liquidity along the full range to prevent someone from manipulating the price. Brendan and I had a brief discussion about his yesterday. However, the price only jams if no one else provides liquidity in a range that is outside of the existing band. While security issues in relation to price source would be one concern, I do think that the IL would be hard to offset without active management using products like BarnBridge’s SMART Alpha or Squeeth (Squeeth is designed for ETH pairs), which allow users to hedge against smart volatility.
While there are Uni V3 LP managers, IL has proven quite severe for users with almost half of LPs being unprofitable. There’s a CoinTelegraph article with a link to the study in reference with more detail.
Visor Finance, which has since rebranded, has suffered several security events. Popsicle Finance suffered as exploit in August 2021. I’ll include the associated statements/articles in reference to the losses. There are also entries in Rekt but I will not cite them here. (A note: I hold the view that Rekt is akin to the Perez Hilton of DeFi publications due to the opinionated tone and nature of the writing. I do, however, understand many people view Rekt as an authority on loss events in DeFi.)
Visor Finance November spot price exploit.
vVISR staking contract exploit.
Popsicle Finance August Exploit
Lots of things, then, to consider about Uniswap V3.
Balancer V2: Smart Pools
While discussing the Stablecoin Asset Allocation approaches with members of the Treasury Working Group, I suggested a Balancer Pool on Ethereum that held interest-bearing forms of USDC, USDC V4 tickets, and USDC.
For example: USDC / nUSDC / aUSDC / cUSDC / ptUSDC
Where:
nUSDC = token representing liquidity provided to Notional Finance’s fCash AMM
aUSDC = interest-bearing token for supplying USDC to Aave V2’s lending market
cUSDC = interest-bearing token for supplying USDC to Compound’s lending market
ptUSDC = ticket for depositing into V4 prize pool
Any of these could be substituted for other interest-bearing forms of USDC or other interest-bearing tokens. The benefit of such a pool: we can create liquidity for ptUSDC while also putting treasury assets to work! The protocol would earn a blended interest rate from the interest-bearing tokens + swap fees for trades routed through that pool. Now, if we did this, we could mention this in the docs and highlight other places while being mindful that we can’t list in the app (regulatory implications).
There’s one piece. I haven’t forgotten about POOL liquidity.
Because Balancer allows users to create pools with weights other than 50/50, we could create a liquidity pool with, say, 60% POOL / 40% USDC. Using different weights would allow the protocol to somewhat minimize IL. The 80/20 pools are described as, “a happy medium when balancing liquidity an Impermanent Loss mitigation” in the Balancer docs.
Let’s say we do both these things: we now have:
USDC / nUSDC / aUSDC / cUSDC / ptUSDC at a 20/20/20/20/20 weight
and
POOL / USDC at a 60/40 weight
Balancer using their smart router to find the best price for trades, so someone trading POOL for ptUSDC would be routed through the two pools so a user could sell POOL for ptUSDC. On the other hand, someone could sell aUSDC for POOL, and now our pools are earning us trading fees, we’re giving users different ways to trade in and out of pools, and we’re reducing gas costs for users to migrate in and out of interest-bearing tokens without needing to withdraw assets and deposit assets in V4.
Allowing users to swap from aUSDC or cUSDC into ptUSDC would help onboard more users, if we were to pursue a way to grow TVL on Ethereum or if we were to change prize tiers on different networks, as outlined here.
Users could add liquidity to these pools as well. At this point in time, Balancer would need to work with PoolTogether to create such a pool, but it I believe this would be something Balancer would be interested in helping our community develop, given we’re looking for a long-term liquidity solution. I’ve reached out to the Balancer team to see if this boosted pool + cross pool liquidity solution is viable one but sharing to further the discussion.
Note: the interest-bearing assets in question are just examples for the purposes of this post.
We could also approach Balancer about providing BAL rewards for the POOL / USDC pool which would act as an incentive for users to supply USDC and/or POOL to the pool as well.
Other considerations for POOL liquidity
I’ve seen discussion about whitelisting POOL on Bancor, and we’re currently participating in the Ondo + Fei LaaS program. I’d like to wait and evaluate the outcome of the LaaS program’s benefits before commenting on that. The most important consideration here: we want deeper liquidity for POOL in DeFi and fragmenting liquidity while the token price is low could give us shallow liquidity across multiple pools. On the oracle side, we could use a Chainlink oracle and multiple pools would make price manipulation less likely. Slippage would become the issue for larger trades, which could be POOL → USDC or USDC → POOL.
I’m always open to other approaches, but I really do think that Balancer’s pools would be a great solution for PoolTogether, given the various use cases available to folks creating pools on Balancer.
@Brendan I know you know most of what I’ve written but I outlined the case for other readers
Looking forward to your thoughts