Proposal: Pay bLuna's UST yield to liquidity providers rather than having it sit unclaimed

I wanted to put this proposal out in General Chat to gauge community interest before submitting it as an official proposal.

1. Summary: If you hold bLuna in your wallet, you earn about 8%-10% APR in UST every year, which has to be manually claimed on the Anchor website. If you supply your bLuna to the bLuna-Luna LP in Astroport, that UST is sitting around unclaimed. Astroport doesn’t claim it, and you can’t claim it either (even if you pull your bLuna out).

I propose that the UST yield from bLuna deposited in the bLuna-Luna pool be distributed to the liquidity providers on a daily basis, in proportion to their share of the pool. The distribution would be based on regular average snapshots to prevent gaming the system.

2. Background: There is currently 2.63M bLuna deposited in the bLuna-Luna pool. At current staking returns of 7.55% and bLuna’s current price of around $90, that amounts to $16.6M UST in bLuna unclaimed rewards being paid out each year. Even if liquidity providers withdraw their bLuna, they currently are unable to claim the UST rewards that have already been paid out, because those rewards are tied to the wallet that held the bLuna at the time the rewards were paid (i.e. the LP wallet).

Put differently, even though the bLuna-Luna LP advertises an APR of 9.94%, the effective APR is actually closer to 4%. This is because more than half of the pool is made up of bLuna tokens that users have supplied, and the users are foregoing all of their bLuna yield rewards.

Most importantly, the current situation doesn’t benefit anyone. The bLuna yields aren’t being used by Astroport. They aren’t going to the people who actually own and supply the bLuna. The current setup simply results in liquidity providers giving up money for no reason, which disincentivizes people from depositing liquidity into the pool.

Fixing this solution would make Astroport the best-in-class DEX for bLuna-Luna liquidity, which benefits all Astro holders and the protocol as a whole due to increased volume and swap fees. No other LP has tackled this problem yet. And in periods of high market volatility, bLuna-Luna transactions skyrocket (due to people managing their loans). If Astroport tackles this problem, then it will attract nearly all of the bLuna-Luna liquidity, and therefore all of the trading volume.

3. Proposed Solution / Implementation: Astroport’s functionality should be expanded so that it claims the bLuna rewards and then deposits it to the bLuna liquidity providers (i.e. the owners of the bLuna).

Here’s how I see this happening in practice:
There are two buckets of UST rewards that need to get distributed: (A) UST rewards already accrued (I believe the amount is now around $2.4m); and (B) future UST rewards.

3(a). For UST rewards already accrued: I would propose that the protocol look at daily snapshots of depositors’ relative ownership of the bLuna-Luna pool since Astroport launched. The UST would then be distributed to depositors based on their average share of the bLuna-Luna pool over that period. For example, if your average bLuna-Luna deposits represented 10% of the pool, you’d be entitled to 10% of the $2.4m of unclaimed $UST rewards ($240,000).

The reason for using average snapshots is to prevent gaming the system. If we just looked at everyone’s relative share right now, then people could suddenly deposit a ton of bLuna-Luna into the pool just to claim a larger share of the $2.4m, and then withdraw their liquidity right after.

3(b). For UST rewards paid out in the future: The protocol takes snapshots throughout the day at random intervals to look at the percentage of the bLuna-Luna liquidity pool each depositor owns. At the end of each day, the protocol runs the Anchor contract to claim all of the UST rewards for the bLuna in the pool, and then distributes that UST to the depositors based on their average share of the pool for that day.

For example, if the bLuna in the bLuna-Luna pool generated $50k in rewards for the day, and my bLuna-Luna LP deposits represented 1% of the overall amount of bLuna-Luna in the pool for that day, then I would receive $500. This amount could be claimed via Astroport’s website.

3(c). Addressing the other proposal re: converting bLuna to stLuna: There’s another idea floating around for converting bLuna in the bLuna-Luna LP into stLuna. I don’t think that proposal is ideal for a few reasons:

  • Impermanent loss. stLuna’s value will keep going up relative to Luna, so liquidity providers will suffer impermanent loss.
  • Consent. Not all bLuna liquidity providers want their bLuna converted to stLuna (which is irreversible).
  • Doesn’t address the existing $2.4m unclaimed rewards. And if we’re going put in the effort to set up a system for distributing the unclaimed rewards, we might as well apply that methodology to future rewards.

4. Ask of the community: If this idea is of interest, please respond and like. I had brought it up in the discord, and the devs had suggested I make a post here to gauge community interest. Likewise, please share any comments, criticisms, or any ideas you have to improve on this suggestion!

3 Likes

There’s already code on Github with special bLUNA-LUNA pool code that handles bLUNA reward claiming:

It needs an audit which can come in a couple of weeks due to auditors being busy.

Awesome! Once it’s been audited, will it be deployed, or do we still need a proposal for that? And is there a writeup concerning how the past rewards are distributed?

Current rewards will be distributed to bLUNA-LUNA LPs that are LPing in the pool when the pool gets upgraded. There is no practical way to determine rewards for past LPs.

This upgrade will need a proposal for sure.