Hi all, I’m the co-founder of Goldfinch, and an FXS hodler. I really like what Frax is doing, and we are excited to collaborate with Frax on future endeavors. This is an interesting idea with good kernels, but as one of the RWA protocols that FRAX would likely consider, and also as a veteran DeFi builder, I thought I’d share some thoughts.
TLDR
While the spirit of this proposal is good, I think it is overly complicated for an initial version and doesn’t properly take into account how these protocols and RWA borrowers in general actually work. I also think it optimizes for yield through a bidding system, which is absolutely the wrong metric for FRAX to optimize for at this stage. I’d like to offer some constructive feedback. To summarize some key issues I see…
- FRAX must to give up the requirement for guaranteed instant on-chain liquidity, or the whole RWA initiative wont’ work (and manage liquidity in other ways)
- Any FRAX RWA pool should consider non fixed duration (ie. evergreen) opportunities. I explain more, but I think index-like, evergreen products are probably something that is better for FRAX anyway, so any design should be able to accomodate that.
- Insurance should be dropped. It’s much better as an opt-in individual product, rather than a protocol level thing
- The bidding system should be dropped as it optimizes for yield when really FRAX should be optimizing for safety and scalability at this stage, as long as they hit low but reasonable return targets.
While I won’t outline a whole alternative proposal here… at a high level, I would instead suggest vastly simplifying and doing something like…
- FRAX starts a RWA fund (not fixed rate system as this proposes), which anyone, including the protocol itself can invest in with FRAX (could be non FRAX collateral too).
- FRAX governance whitelists certain addresses (which could be RWA protocols, or pool delegates, or even smart contracts with rules) to use the funds from this pool, up to some cap per address.
- FRAX receives a variable interest rate, like an LP in a fund would receive.
But leaving my general outline aside for a minute… see below for specific commentary on this proposal
A couple RWA specific things
- As @jkim pointed out, Goldfinch (and other RWA protocols) are not in fact under or uncollateralized. They are over collateralized with off-chain assets and income. I actually wrote a whole thread about this here if you’re curious. We prefer the term “credit protocol”.
- I also want to echo what @jkim mentioned around “recalling the assets before X time period”. This is not a good idea. There is no free lunch. You could do this, but you’ll limit yourself on what is possible and reduce returns substantially. Which brings me to my next point…
Regarding liquidity…
From what I see here, and from what I’ve read in the docs, Frax the protocol generally wants to be able to withdraw everything on demand always, on-chain. This is understandable. Who doesn’t? But I’m just gonna say this right now, if this is a hard requirement for FRAX, then they simply should not enter RWA at all. There is not much point, because people in the real world have to, ya know, actually be able to use the money.
But once you move away from requiring instant on chain access, I think the window opens up significantly because as far as a “liquidity crunch” situation goes like we’ve seen in the last few days, it’s pretty much “instant” or it doesn’t matter. Liquidity costs are like an iron rule of finance. They call it the “liquidity premium”. If you need instant liquidity, you’re going to pay for it with essentially no return. This is why Compound returns essentially drop to zero in the bear market. There is basically no risk, and instant liquidity, so returns must be near zero.
That said, of course I think Frax should enter RWA protocols, so I think this requirement for perfect liquidity has to be relaxed, and Frax should manage this holistically in a different way (eg. maybe a cap on total percent of Frax collateral that can be locked up – in an RWA protocol or otherwise – over X time frame, and Frax just generally knows that not 100% of collateral can be redeemed at all points in time, and manages expectations and plans accordingly). Perhaps 10-30% could be redeemed instantly, and the rest over time. Compromises can be made. But they are always just tradeoffs. I do want to point out, that having assets backing your token that will pay back (such as loans), is NOT at all the same things as being “undercollateralized” or “insolvent”. If the loans are good, and there comes a time when Frax needs that liquidity, someone should be willing to step in and be the extra liquidity for a small premium. The secondaries for FRAX would know this, and arbs should keep things in order.
If FRAX can get comfortable with something like that, then your’e onto individual investors liquidity preferences, which have more options. At Goldfinch, we have to deal with this same issue. We manage this with two types of investors and two types of pools. One, the “backers”, are less liquid, but they know that going in, and get a higher yield for it. The other, the “LP’s”, invest in a Senior Pool, which is more liquid (though still not guaranteed), and more secure, but they get a lower rate of return. Also, there are secondary markets on Curve for the Senior Pool, so if liquidity doesn’t exist on the Senior Pool, than people can pay for liquidity now by accepting some slippage on the Curve pool, and arbitrageuers can pick up the spread. We’ve seen that work in action over the last few weeks.
I might actually say you should more or less copy the model that our Senior Pool has, which is also what AlloyX is doing with their pool. Basically, you have underlying fixed or variable rate loans, but allow for the net yields to investors to be variable (or just lower up to a cap), by allowing extra capital to come in. This basically balances returns and liquidity by giving you some liquidity which can handle most withdraw needs most of the time, but not guaranteed liquidity. Again, there is no free lunch and no way to get both.
Currency mismatch
It should be noted that not all borrowers on RWA pools will want to necessarily take loans in FRAX. Or perhaps it’s a deal that was already done in USD terms, and is now being tokenized (this is how Centrifuge usually works IIRC). I don’t think this is a blocker at all, but FRAX holders who invest in such a pool should be made aware that they could be taking on depeg risk of other assets (even other dollar denominated ones like USDC, DAI, or USD itself)
Timeline restrictions and specific deals?
It seems like this pool is coming from a place where it must invest in specific deals with a specific duration. Which is of course a totally valid way to do things. But I just want to note it’s not the only way. In fact, we created our Senior Pool for exactly a situation like this. It is evergreen. It has no lockups, and continually represents essentially a trust weighted index of what’s on Goldfinch. It is also “senior” to all the other lenders, making it the first to be paid back, and thus the safest. So Frax could supply money in there, and have much better liquidity, much lower risk, and still earn solid yields (currently just under 8%).
Beyond Goldfinch, we know that IndexCoop is working to integrate with multiple RWA protocols, and places like AlloyX are being built on top of Goldfinch to abstract these things like durations away (AlloyX is making an ERC20 version of our Junior Tranches, to offer a more liquid version of our Backer Positions)
This approach also changes the trust dynamics. Instead of trusting one delegate or one company for one deal, you trust a system (ie. the Goldfinch Senior Pool, or IndexCoop’s governance), which is much more scalable, evergreen, and less work.
Since these products seem like they would be more attractive to FRAX than fixed duration assets and specific deals, I would think any design should be able to accomodate them easily. Perhaps even prioritize them.
Insurance
I think you should eliminate this. It adds a lot of complexity, and while it is valuable, I think this is the wrong place and time to do it. You want to get a V1 launched. This is a nice to have or a V3 feature at best. Even in principle, I don’t think this is the protocol’s job. Really you should just pick good borrowers, and good protocols and let individuals buy insurance if they want, rather than force this cost on everyone (most of whom will not participate in this pool). There are entire protocols being built to handle credit default insurance. (eg. Carapace finance which I’m actually an investor in).
Also, if you do the math, you will never be able to maintain a reasonable amount of cash as protection. Like either you have to put up a lot to actually make it a meaningful amount of protection (which seriously impacts your yields), OR you put up a “reasonable” amount that actually only protects investors from like a 1-5% loss, and just doesn’t move the needle much anyway, so you why bother? This is much better suited as an individual product IMO.
Bidding
I also think this is overly complicated, and should be eliminated. If I understand correctly, this is a fixed yield bidding system, vs. allowing more of a fund structure. Borrowers want to be very very sure you have the capital well ahead of time before entering into a deal. Introducing a bidding process will A.) Add risk to whether a protocol will actually have the money for a borrower, or B.) Force the protocol to do the bid and then take on risk and cash drag that the deal might not actually go through.
Perhaps most importantly on this, it seems to optimize for yield and I feel very strongly that yield is not what FRAX should be optimizing for. Do you really want to bring your investment decisions down to someone offering you 0.1% more yield? Probably not. The real world is complicated, and yield is not always well risk-adjusted (how long did you need to get Anchor’s 20% to make that worth it?). There’s obviously targets and zones you want to be in, but it needs to be weighed against a host of other factors.
What FRAX should optimize for is safety, and hitting “reasonable” return targets. (maybe 3-5%). Seriously, that might sound low, and hopefully you could do better, but I think y’all should be thinking indexes, and diversification, and senior assets. FRAX is acting a bit like a bank, and so should be thinking low risk with any customer funds. Especially if this is to scale to the size that FRAX wants to become, it’s not time to quibble over 1%. Get a system that works and can scale, and be happy hitting reasonable targets.
Fin! Hope that’s helpful! Happy to discuss more!