The Interest-Bearing Stablecoin Index [IBSI]
Summary: a formal proposal to the DAO for a Indexed V2 index of stablecoins that earn interest through Nirn vaults, weighted by weekly average interest rates.
This is a forward-facing proposal, as it will only be possible once our Balancer V2 upgrade is complete and Nirn can be fully integrated with our pools through an asset manager. Nonetheless, it’s worth entering this into the ring.
Note: I’m not married to this name at all, but I can’t work out a backronym for GAIN or EARN. Suggestions very much welcome!
Introduction
The idea of an interest-bearing stablecoin instrument by Indexed has been thrown around in Discord (and on the roadmap) for a while now, ever since Core started working on Nirn. Competitors in the space have their own takes on this sector, either existing or proposed: YLA, USD++, PAY and BMI.
With the exception of USD++, these are all instruments that have as their constituent assets interest-bearing variants of stablecoins that are tied to a specific protocol, such as aDAI (Aave-interest bearing DAI), yUSDC (Yearn USDC) or more exotic variants such as crvALUSD (Curve Alchemix USD).
The ‘problem’ (such as it is) with doing things this way is that you are married to a protocol for each particular base asset that you select. You may have started off with great rates for aDAI and yUSDC, but they could (and frequently do) rapidly get knocked off their top spots in favour of - for example, cDAI and aUSDC.
The ‘best’ rate for a given token is dependent - and I’m vastly oversimplifying here - on a protocols available capital to lend and its utilisation ratio, and these change every couple of days. If you’re not willing - or able - to constantly rebalance your Token Set or Balancer pool to take advantage of these shifts, you’re missing out.
If you’re using a Balancer V1-based index, this also requires you to have that specific variant of a token (i.e. aDAI instead of DAI) in order to mint the index token: that’s extra gas and a bit of a hassle. If you’re using a Token Set, you’re bound to the Set Labs integrations and can’t take advantage of other markets/protocols that pop up without relying on their engineers for the appropriate technical lifts.
Over at Indexed, we can do something quite a bit more sophisticated.
Enter the IBSI.
Justification
The IBSI - as I envision it - will be created as an index pool of base stablecoins such as DAI and USDC, allowing interested parties to easily enter or exit with stables that they already have to hand.
The way that our proposed Balancer V2/Nirn integration works is that the assets within the IBSI are then deposited into their appropriate Nirn vaults, which then rotates them across several lending platforms depending on yield rates.
Any interested party is capable of running an optimiser that we have open-sourced that scans the available rates for these vaults, and triggers a shift between lending markets if a rate exists elsewhere that is at least 5% better than the currently utilised market. If the pool is large enough that it is optimal to split the assets across multiple lending protocols at once, this is also possible.
This means that the IBSI could theoretically have every single one of its assets moved between Compound, Aave, Cream, Iron Bank and Fulcrum every hour (to say nothing of our upcoming support for Rari, dYdX and probably Yearn), without affecting the composition or weightings of the index itself.
To lean into a forced metaphor, while all this threshing is happening under the surface, to outside observers the IBSI is just a boring duck: an index pool of vanilla stablecoins that you can enter into with DAI, exit into USDC and earns for you.
I don’t think I need to belabour the point of how valued such an asset would be in the Indexed arsenal: other parties do that regularly when discussing the sheer size of the market for DAO treasury management, and they’re not wrong.
Assets
For candidacy, I had a look at the current top ten assets yield-wise that Nirn can currently support that I would classify as stables. They are:
Asset | Rate | Protocol |
---|---|---|
USDT | 9.76% | Fulcrum |
HUSD | 8.33% | Cream |
USDC | 7.86% | Fulcrum |
DAI | 7.67% | Aave V2 |
RAI | 6.64% | Cream |
BUSD | 6.59% | Cream |
sUSD | 6.22% | Iron Bank |
USDP | 4.58% | Aave V2 |
GUSD | 3.81% | Aave V2 |
TUSD | 3.47% | Aave V2 |
There are a fair few others, and others still which aren’t supported yet due to the set of protocol adapters that Nirn utilises. “Where FRAX/FEI/MIM/UST/ALUSD”: I’m aware, I promise, and they’re probably all going to end up on Rari when they open up their pools, if they’re not already: once we’ve deployed the Rari protocol adapter, they’ll all be fair game.
It’s worth saying here that the underlying mechanism for yield here is currently pure lending out of conservatism: there is a lot to be said for engaging in complex strategies that produce far better returns on stables (i.e. those supported by Yearn).
We can - as a DAO - choose to go down this road if/when Nirn integrates these more ‘advanced’ protocol adapters, which will - I suspect - vastly increase the interest-earning potential of the IBSI, at the cost of “additional smart contract risk” (places like Curve and Yearn are industry-standard at this point though, so I don’t see this being a reckless gamble).
Note: some of these tokens may have centralisation or regulatory concerns, or may be very infrequently used compared to others: this is merely a sample drawn from what I can see from my analytics script.
Weighting
My thinking here is that the scoring strategy for weighting assets in the IBSI should be an average of the previous weeks best available returns for a given asset, rather than observing a particular data point and assuming that it’s representative (the fact that HEGIC is currently getting 31.74% returns on Cream is instructive in that regard). There’s possibly some risk-factor weighting we could add in as well based on concerns or Lindyness of a particular asset, but I’d like us to have a wider conversation about that.
If we take the percentages above as being in this form, the example IBSI above would be weighted as follows, producing a diversified basket with a yield of 5.69%:
Asset | Score | Weight | Base Yield | Actual Yield |
---|---|---|---|---|
USDT | 9.76 | 15.03% | 1.45% | 1.17% |
HUSD | 8.33 | 12.83% | 1.06% | 0.86% |
USDC | 7.86 | 12.1% | 0.95% | 0.77% |
DAI | 7.67 | 11.81% | 0.9% | 0.73% |
RAI | 6.64 | 10.22% | 0.68% | 0.55% |
BUSD | 6.59 | 10.15% | 0.67% | 0.54% |
sUSD | 6.22 | 9.58% | 0.6% | 0.48% |
USDP | 4.58 | 7.05% | 0.32% | 0.26% |
GUSD | 3.81 | 5.86% | 0.22% | 0.18% |
TUSD | 3.47 | 5.34% | 0.18% | 0.15% |
Total | 64.93 | 7.03% | 5.69% |
For those of you that like graphs:
A smaller variant (thanks for the idea @litocoen) that only contained the top five would look like this, with an actual yield of 6.6% - more concentrated yield but less diversification:
Asset | Score | Weight | Base Yield | Actual Yield |
---|---|---|---|---|
USDT | 9.76 | 24.24% | 2.36% | 1.91% |
HUSD | 8.33 | 20.7% | 1.72% | 1.39% |
USDC | 7.86 | 19.52% | 1.53% | 1.24% |
DAI | 7.67 | 19.05% | 1.46% | 1.18% |
RAI | 6.64 | 16.49% | 1.09% | 0.88% |
Total | 40.26 | 8.16% | 6.6% |
The ‘true’ yield returned by a given Nirn vault is roughly 81% of the value reported by the maximum adapter rate (the difference between base and actual yields above). The reason for this is:
- A vault aims to keep 10% of the deposited assets as a reserve - deposited but not utilised by the underlying protocol adapters, in order to facilitate lower-gas swaps and exits, and
- 10% of the yield generated by the productive (non-reserve) assets is routed to the Indexed Finance DAO as protocol revenue.
The above parameters (reserve and fees) can be adjusted by the DAO, and the amount currently in reserve by a given vault constantly varies depending on interactions.
Of course, the rates for all of the above are constantly in flux, but there’s a sample.
Governance
As an instrument that we would very likely push quite hard as a very flexible, easy-to-enter option for DAOs as a unique, diverse option for Treasury stablecoin exposure and the general public alike, I’m of the personal opinion that the DAO should create (and potentially incentivise) a distinct committee/group - separate to the Sigma committee - that are responsible for analysing candidate assets for the IBSI in particular, modifying the candidate list and making the DAO aware of any concerns.
The above is fundamentally down to the will/availability of the wider DAO, and Sigma remains an option to act in this overseer role. It’s all up for discussion, but if you’d be interested in engaging on something like this, please make your voice heard!
A circuit breaker that has the power to deactivate the ability to swap within the pool should definitely be in place, especially if the IBSI contains algostables that have the potential to veer significantly off-peg. If we were to go down that road, we’d have to deploy another controller responsible only for the IBSI (the more I type this acronym the less I like it, please help).
As is the case for all of our existing products, reindexing to add and remove candidates from the active index would occur after three weekly reweightings (under the assumption that Indexed V2 follows the same rebalancing structure as present).
Technical
As I said at the start of this, this is a forward-facing proposal. There are a fair few things that we’d need to get in place infrastructure-wise first, which will take Core a couple of months to get ready. They are:
- Complete the components of the Balancer V2 upgrade detailed here and have them audited: this is the work that’s currently getting Core out of bed in the mornings, and will be for a while.
- Complete formal verification and a subsequent audit of Nirn. Core’s current thinking is to fully open up Nirn for all potential standalone vaults after the Certora formal verification process is completed (ETA November 2021), but we’d sleep a whole lot better if we had a firm like Quantstamp look at the code as well prior to utilising it within an asset manager for index liquidity.
- Update the Nirn subgraph to record and aggregate rates for individual vaults.
All of the above is notwithstanding any/all discussions about how such a product should look/be weighted/be operated in practice. Full disclosure: we’re looking at at least four or five months before this would be live.
Conclusion
I’m quite excited about the idea of this: I’ve done the ‘rotate stables around every few days’ dance myself, and have the fees.wtf scars to prove it. I’d like to gauge the thoughts of the DAO (and the wider DeFi community, if you’re reading this!): everything’s on the table at this stage.
Let’s hear it!