GIP-38: Remove no-cost FIDU to backer NFT swap

Authors: landakram

Summary

GIP-03 introduced a way for FIDU holders to move their Senior Pool positions into open backer pools without incurring withdrawal costs (colloquially referred to as “zapping”), given available USDC liquidity in the Senior Pool. This functionality should be removed, as it siphons USDC liquidity from pending withdrawal requests and makes withdrawal timing uncertain.

Motivation

  1. As of block 16385812, the Senior Pool currently has ~20.8M FIDU of withdrawal demand. As described in GIP-25, as USDC liquidity becomes available in the Senior Pool, either by borrower repayments or new deposits, available USDC liquidity is allocated pro-rata to withdrawal demand, so long as withdrawal demand exceeds available liquidity.
  2. Based on the high withdrawal demand, borrower repayment schedule, and current macroeconomic environment, the Senior Pool likely faces a low liquidity environment in the short to medium term (~1 year). If we assume no additional deposits and full repayment by borrowers, current withdrawal demand will be met in Feb 2024, when several backer pools repay principal.
  3. In accordance to GIP-03, when FIDU holders “zap” their positions to backer pools, they move available USDC in the Senior Pool into a backer pool of their choosing, with a maximum value constrained by their position size and available USDC in the Senior Pool.
  4. Since zapping uses available USDC, it takes this liquidity away from pending withdrawal demand. This means that withdrawal demand may not be met in Feb 2023. In fact, it is not possible to estimate when a given withdrawal request may be fully fulfilled as it depends on the volume of zapping over the same time period. In short, zapping unfairly takes precedent over withdrawal demand with respect to use of Senior Pool available USDC liquidity, which is unfair and makes capital planning even more difficult.
  5. The unfairness problem is exacerbated if Goldfinch brings deals with shorter time frames. Currently all backer pools have loan terms of 3 years. If Goldfinch brings a deal with a 6 month term, for example, then a savvy investor might zap their Senior Pool position to this pool and exit within 6 months, bypassing the pro-rata distribution enforced by GIP-25.

Specification and Requirements

Specifics

  • The ability to zap Senior Pool positions to backer pools would be removed at the smart contract level, as well as from the UI present at app.goldfinch.finance.
  • Removal would involve removing the following functions: zapMultipleToTranchedPool, unzapMultipleFromTranchedPools, claimMultipleTranchedPoolZaps, zapFiduStakeToTranchedPool, zapStakeToTranchedPool, claimTranchedPoolZap, unzapToStakingRewards, as well as associated internal functions and specialized roles that allow zapped funds to bypass withdrawal fees.
  • The functionality to move Senior Pool positions to FIDU-USDC curve pool would not be affected by these changes. Moving a Senior Pool position to the curve pool involves only a FIDU transfer and does not affect any USDC liquidity in the Senior Pool, and therefore is not in scope for this proposal.

Benefits

  • It would no longer be possible for investors to bypass the withdrawal queue and use available USDC liquidity on a non-pro-rata basis to exit the Senior Pool to another Goldfinch investment.
  • Investors with pending withdrawals would have better visibility into when their withdrawal becomes fully liquid, based on the loan repayment schedule.

Downside

  • Zapping allows available USDC liquidity to be re-invested to grow Goldfinch’s loan-book and TVL (by reinvesting interest payments). By removing zapping, we would be removing a tool for growth, in favor of meeting withdrawal demand that is ostensibly more clear and fair for Senior Pool LPs seeking liquidity.

Voting

“Yes” - Remove ability to zap Senior Pool positions to backer pools

“No” - Continue to allow zapping Senior Pool positions to backer pools

Resources

2 Likes

It seems that these changes will really make the whole situation more fair for those expecting to withdraw from the senior pool. So at the current stage I support this proposal, and if the situation with liquidity in the senior pool normalizes in the future, we can return the previous functionality

I support this proposal. I vote YES

I agree with this offer

At first I thought there was no point in banning this function…But you described quite serious problems.
About low liquidity I did not fully understand and I think it is more of a “thought”, but no more, but it has a chance to happen. :upside_down_face:

But in general you said everything right…
I vote YES.

Proposal didn’t reach the quorum until the end date [Jan 26, 2023, 4:40 PM]

Having read the above arguments, I am inclined to agree with this proposal and vote in favor of removing the ability to zap senior pool positions to backer pools.

This functionality should be removed, as it siphons USDC liquidity from pending withdrawal requests and makes withdrawal timing uncertain. Yes indeed, I think it should be supported.

And this is further proof of the future usefulness of GIP-40 :smile:

I vote YES, there should be liquidity! Very correct decision

A quorum had been reached at the second attempt :raised_hands:

Council has approved the proposal

Yes - remove ability to zap Senior Pool positions to backer pools.

My voise is “Yes” cause I think it’s great for Investors with pending withdrawals have better visibility into when their withdrawal becomes fully liquid

Certainly “YES” - let’s remove ability to zap Senior Pool positions to backer pools

Of course i vote “Yes” for removing ability to zap SP.

I vote YES, there should be liquidity!