Migrating Liquidity and Votes from the pUSD Metapool

Mobius Money
5 min readNov 11, 2021

--

In light of the recent exploit of Synapse Finance’s metapool contracts, we decided to indefinitely pause the pUSD metapool and migrate liquidity and votes to a new pUSD/cUSD pool.

The Synapse Finance Metapool Bug

On October 7, the Synapse Finance team discovered a bug in their AMM Metapool contracts. The LP token price calculations inherited a flaw from Saddle Finance that allowed a user to manipulate the computed virtual price and drain ~8M USD from their Avalanche nUSD Metapool. Fortunately, the Synapse community managed to quickly pause the pool and halt lost funds from leaving the chain. Ultimately, the team decided to scrap metapools entirely instead of pursuing a fix. To learn more about what happened, check out their post-mortem here.

What Mobius is Doing

In response to news of the exploit, the Mobius core-team immediately executed our emergency power to freeze the Poof USD (pUSD) metapool. This action curtailed Mobius’ exposure to the exploit by preventing deposits and swaps, while still allowing users to exit their position. As a result, no user funds were lost to the bug. In the meantime, the team verified whether or not our metapool contracts inherited this bug — and they did. Consequently, we have decided to keep the pUSD metapool paused indefinitely and migrate liquidity to a regular pUSD/cUSD pool.

We believe that migrating to a regular dual pool is the safest and easiest path forward given that the regular dual pools have had greater exposure to real world testing compared to alternatives (e.g. tripools). This is also something our users are familiar with, which should hopefully make for an easier migration.

How this Impacts Rewards

Fortunately, we managed to coordinate with the Poof Cash and Moola Market teams to prevent replenishment of the POOF and MOO rewards for this next cycle and moved them to the new pool. This should help incentivize LPs to migrate their liquidity and subsequent votes. However, unlike the POOF and MOO “external rewards,” MOBI rewards are decentralized and autonomous, making it much more difficult to migrate to the new pool. Despite the pUSD metapool being suspended, it will still receive a portion of MOBI rewards from the gauge controller contract because there are veMOBI stakers voting for it. In the ideal situation, every LP voting for the pool would have immediately changed their vote to the new pool prior to reweighting, but this was not likely to happen. As a result, depositors in the now deprecated pool are receiving MOBI rewards despite providing no value to the protocol going forward, and have an incentive not to leave.

Terminating the Metapool Gauge

While the MobiusDAO — which is currently controlled by our multisig — has the power to terminate a pool’s gauge (thus stopping its MOBI rewards), we opted not to use this power, yet. We understand that with great powers comes great responsibilities, and we want to be very thoughtful with the use of emergency powers — as should token holders after full decentralization. Instead, we decided to give LPs time to migrate their liquidity and votes to the new pool on their own volition. However, to prevent short-term manipulation and long-term misuse of MOBI rewards, the team has decided to terminate the metapool gauge on November 12 at 5PM PT. We will post reminders across our different platforms to make sure LPs are well-informed and can act accordingly.

What to Do If You are a Metapool LP

If you still have liquidity in the pUSD metapool, you have a few options. When you withdraw from the pool you will receive ½ cUSD/cUSDC LP-tokens and ½ pUSD. However, exiting a pUSD position is not the same for everyone. Let’s walk through the different paths depending on your situation.

Withdraw and Deposit to the New Pool

If you simply wish to migrate your funds to the new pUSD pool, great! This is the easiest option and best for the protocol. Assuming you are farming with your LP-tokens, start by withdrawing from the farm. You will now be able to withdraw your funds from the pool, receiving both cUSD/cUSDC LP-tokens and pUSD. Since the new pool uses cUSD instead of LP-tokens for liquidity, you will need to convert your cUSD/cUSDC LP-tokens into cUSD. Start by navigating to the cUSD/cUSDC Optics pool and withdrawing your funds. Now you will have ½ cUSD and ½ cUSDC. If you wish to put 100% of your funds back into the new pool, swap your remaining cUSDC for cUSD. Now you will be able to deposit into the new pUSD pool.

Withdraw and Close out pUSD Debt Position

If you don’t wish to migrate to the new pool, but you minted pUSD on Poof Cash (and thus have an open debt position), then you might want to unwind your position. Start by withdrawing funds from the metapool. You will now have cUSD/cUSDC LP-tokens and pUSD. To close out your pUSD position, follow the tutorial here.

Withdraw and Sell pUSD

If you don’t wish to migrate to the new pool, but you did not mint pUSD on Poof Cash (by entering a debt position), then you only have one option for exiting your pUSD position: selling on the open market. If this is the path you decide to take, we recommend waiting till the new pool has sufficient liquidity for you to do a trade and to be cautious of slippage.

Lesson Learned

DeFi is a crazy place, and we got pretty lucky on this one. Even code that is heavily audited, battle-tested, and with $100M+ deposited can be exploited. (The Mobius metapool passed an external audit ~2 weeks ago.) Remember to always do your own research and invest with caution. Or maybe build the first insurance protocol on Celo :-)

This is also a reminder of how important good communication and coordination is. We were privileged in that we only needed 3/4 consensus to invoke these special powers. When Mobius fully decentralizes we will need to inform and convince hundreds, if not thousands of people to participate in governance to do something like this. Keep your eyes peeled for new community engagement activities like our first Twitter Space AMA this weekend.

Need Help?

If you need help bridging assets, providing liquidity, and/or swapping on Mobius, join our Discord.

Stay Connected

Follow us on Twitter; Join our Discord; and Visit our Website

--

--