To give some context as to what the frontrunning was last time and how that appears to have impacted the buyback. Discussions around it started seriously in early October. The main forum post driving it forward went live on November 4th 2021, and the vote was finalized November 17th 2021.
The low price of ETH / wNXM was on November 2nd 2021, when the price was 0.0112. Following discussion, the price climbs significantly. The final average execution price seems to be 0.018. The book value, roughly, for the period is about 0.024. So, we captured about half of the gap between wNXM market price at the start, we can consider this true market price, and book value. The other half is captured by frontrunners taking the price from 0.0112 to our average execution of 0.018.
50% frontrun is not ideal. I picked a number basically out of thin air, which was providing the market a 20% premium to true market value and buying there. If we could execute the same volume at that price, it’s obviously superior to buying at a 50% premium as happened last time.
Right now we’re at 0.010 ETH / wNXM. Book value is about 0.022. Meaning the spread right now to book is pretty similar to what is was prior to our last buyback. However, if we look at when this newest buyback discussion starting happen, late December, we see that the ETH / wNXM price has nearly doubled since mid January. Nearly nothing public happened in that period other than the buyback discussion, so it’s fairly reasonable to assume that a good chunk of the run up in the last few weeks has been driven as a result of trying to get ahead of a buyback already.
If we go with an approach of putting a bid in at a 20% premium to price, we can’t just use the price on the proposal date because this just allows further frontrunning during the proposal period. We would need to use some sort of average. The 30d trailing average VWAP pricing right now is roughly ~0.009 ETH / wNXM, a 20% premium to that would be 0.0108, which is almost the current price at the time of writing.
About 32 ETH of volume goes through Uni v3 on this pool each day. It’s hard to know how much volume we could get at this price, given a lot allegedly goes through Binance and OKX. Given the ±2% depth is very weak, I’d think that if a lot of extra liquidity appeared on DEXs you’d see quite a lot more volume driven through the DEX, as even after the 1% V3 fee you’d get less slippage on the DEX than CEX.
If we assume 100 ETH volume per day, if we wanted to execute an 8k ETH buyback as we did prior, we’d be looking at 80 days. This is an overly simplistic example, and likely not realistic, but it just gives some context. 80 days isn’t overly long and fairly reasonable to me.
I’m quite confident that much of the run in wNXM price recently is as a result of the discussion around buybacks. The market price only 4-weeks ago was half of what it is today, and buyers at that price would realize a 100% gain by selling to us at the price I just suggested.
I’m going to suggest we just bid at this current price and sit on it, refusing to increase it. It’s a very fair price given a 30-day moving average, and it’s the current market price as well.
It’s not clear to me whether we should just throw an 8k bid into the DEX at this price, or if it’s better to split it up into multiple randomized orders. If we do a big wall, my fear is that algorithmic traders will react instantly and move their offers above it. But if we randomize it into smaller bids over time, you don’t create the extra depth which reduce slippage for traders and should drive more volume into DEX rather than CEX where it is now.
It’s fairly hard to actually quantify this because you’re trying to guess how other parties will react. My instinct here is that if we’re bidding above the market price, you want to break it up into randomized chunks. If you’re bidding at the current price today, then I think you want to throw up a massive wall to create depth and try to drive greater volumes, so that we can execute more quickly.
I don’t see why we should offer any premium above this price right now. It’s far above the trailing 30 day average, it’s also the market price. That’s what we should be buying at.
Parameters for proposal:
Enter a bid for 6-months
Price = 0.0110
Quantity = 8,000 ETH
Price will NOT go up, under any circumstance
Bid will only be removed or moved down, if approved by the community
Executed through Enzyme, using their team to execute on DEX.
Enzyme team to receive a reasonable fee for execution
Gas fees and other costs to be paid by our side, not Enzyme. Should be marginal
If the market price is LOWER following the vote passing, we should set at that new market price. If it’s higher, we just use the value of 0.0110.
Funds to do this should come from the expected Maple withdrawal, which will end up in this Enzyme vault anyways. As funds drip in, they should be used incrementally according to the above parameters.
I don’t believe any significant dev work will be required here.
There are two main options:
- If it’s possible, Enzyme vault should become a member, swap from wNXM to NXM, then call the NXM burn function and burn the tokens for us.
- If it’s not possible, we would need to allow the Nexus Mutual capital pool to hold wNXM, then withdraw the funds there, do the swap and burn the NXM. This option becomes more complex and certainly would require some dev work it seems.
The first option should be possible, if we can whitelist the address for the Enzyme vault in our system. Ideally, we can just add the address. If not, Enzyme vault would need to call the contract to become a member. Then, call the contract to swap from wNXM → NXM. Then, call the NXM token contract to burn the tokens. I believe all of this is possible, and would not require development work on our side.
In terms of the oracle, the risk here is that the wNXM price is manipulated in the period between us buying it and completing the burn. This would throw off our smart contracts by making us think we have more funds than we do. AFAIK, the vault automatically uses the 30d TWAP price, and so it’s a little bit harder to manipulate, particularly as there aren’t any large markets for borrowing wNXM right now. Hopefully, this risk is acceptable given that it should only be for a relatively short period. If it’s simple for us to just turn this oracle off and pull no value from the vault, that’s also a nice option. But given how small the capital in the vault will be, the price would need to be manipulated insanely high to make a difference big enough to impact our contracts.