In the United States, and its sphere of influence, rising interest rates became a major flashpoint over the past year, affecting markets including real estate, stocks, and all of our crypto bags.
Here is a graph of the severe interest rate changes over the past year.
If Powell adjusting the interest rates over the course of a whole year led to so much bellyaching, consider the complaints this chart would induce…
In the latter chart, the y-axis range nearly doubled, and the x-axis has been compressed to just a month instead of a year. This is the chart of $crvUSD’s borrow rate since launch, which has whipsawed between near 0% and 5-10% five times over just a few weeks.
“It’s too unpredictable,” the death spiral000rs would scream if they weren’t so jealous of Mich’s house. “Can’t Powell do something?”
As it turns out, Powell, Michi, or any other centralized actor cannot do much to directly to bring down the borrow rate. The entire system is properly decentralized, and onchain inputs primarily determine this rate.
Software is already coming to eat the job of the Federal Reserve chair!
At the end of this article we’ll cover the limited moves Powell could take if he really wanted to adjust the $crvUSD borrow rate. But unlike the usual tools at Powell’s disposal (a secretive cabal voting in private,) you can simply read the source code and predictably understand exactly what is happening.
Here’s how $crvUSD Monetary Policy works.
The Guts of Monetary Policy
Let’s deconstruct the beating heart of $crvUSD rates: the Monetary Policy contract.
As the diagram above makes clear, there are two general inputs that the Monetary Policy contract uses to calculate interest rates — the debt
of various Peg Keeper contracts and the balances
of their affiliated pools.
The Peg Keeper pool balances
should be fairly easy to comprehend. The pools either have too much $crvUSD or too much of their paired stablecoin. This gives $crvUSD a price relative to four other stablecoins with a fairly strong peg history. This is an easy benchmark to detect if $crvUSD is above or below peg.
The Peg Keeper debt
concept requires a greater technical understanding of how they work. Last week we posted one such deeper dive on Peg Keepers, explaining how they are uniquely able to mint $crvUSD and try to trade the affiliated pools to a profit.
As the Peg Keepers mint $crvUSD and trade it into these pools, they can accumulate debt. As you might imagine, Peg Keepers should not accumulate too much debt within the system — you can see below the percentage is roughly <5% of TVL.
Armed with a light understanding of the Monetary Policy contract’s inputs, let’s drill down into how it sets the global interest rate.
Just like the Peg Keepers, we see the contract is blessedly easy for even a layperson to comprehend what’s happening:
In addition to the external calls (total debt and price), the math also involves a few internal variables which can be publicly retrieved/set by the contract admin (ie voted on by the DAO).
The most important such parameter is rate0
, which is the default rate if no corrective factors are applied. The value of rate0
was launched at 3022265993 per second, which you can multiply out to arrive at a baseline of about 10% annually.
The other contract variables which can be adjusted by the DAO (but haven’t yet been touched):
sigma
: A parameter to influence how sensitive the rate is to price deviation from peg (if price is above peg, borrowing rate decreases).target_debt_fraction
: The targeted fraction of total_debt that should be held by pegkeepers.
Also, of course, the dynamic external inputs:
p
: The current price of crvUSD (from PRICE_ORACLE).pk_debt
: The total debt held by just the Peg Keepers.total_debt
: The total debt in the system (from CONTROLLER_FACTORY).
The core of the calculation is that it starts with the default of rate0
(10%) and then adjusts this value upwards or downwards by the internal power
variable, which is an adjustment factor based on price and debt.
If the $crvUSD price is high, the power
variable is set negative, which lowers the rate. If the price is low, the power
variable is set positive, which pushes the rate higher.
Then, the power
variable is tweaked based on the outstanding debt in the system. A great widget to visualize this is published by 0xreviews_xyz.
The widget also publishes a simple rubric you can use to understand the directionality:
When crvUSD price goes lower, the rate goes higher.
When crvUSD price goes higher, the rate goes lower.
When DebtFraction goes lower, the rate goes higher.
When DebtFraction goes higher, the rate goes lower.
Print it off and keep it in your fiat wallet.
The site also converts the logic from Vyper into mathematical notation, along with the current values:
As you can see, if the price was perfectly pegged, a roughly 10% debt in the stability reserve would cancel out the 10% target debt, leaving power
equal to exactly -1, corresponding to a reduction of the default borrowing rate by Euler’s constant (a factor of 2.718…)
The Big Picture
For the past several weeks, as users flocked to mint $crvUSD, borrowing rates spiked to this baseline 10%. The pools were a bit imbalanced, particularly the heavyweights (USDC and USDT).
The overall system puts a heavy emphasis on the price stability of $crvUSD, where it presently leads decentralized stablecoins.
You can think of the Monetary Policy, broadly, as a heavyhanded attempt to enforce this stability. If there’s not enough liquidity in the Peg Keeper pools to keep the ecosystem robust, rates are pushed upwards to disincentivize borrowing and encourage repayment.
The effect of elevated interest rates may have somewhat stalled out $crvUSD growth last week, but the tradeoff was a bespoke price peg. Perhaps the DAO opts to adjust these factors in the future to prioritize growth over stability, but it’s a reasonable tradeoff at the outset to bootstrap the ecosystem and build trust in the new stablecoin.
Can’t Powell Do Something?
Well, in a manner of speaking, he can do something. Powell may not be cable of directly setting the interest rates for $crvUSD like he can for the US and therefore the global economy. But if he really wanted to bring down $crvUSD borrowing rates, there’s a number of things he could do.
Powell could deposit $USDT and $USDC to the Peg Keeper pools
These Peg Keeper pools have somewhat returned to balance over the past weekend (as we saw interest rates drop), but there’s still considerable incentive to LP into the Peg Keeper pools using these stablecoins instead of $crvUSD.
If you have minted $crvUSD, you have to pay the borrow rate to access these boosted rewards. If you have native $USDC or $USDT, you can earn 11-14% boosted rewards without having to pay the borrow rate!
Since Powell has broad control over the money supply, this could be an easy opportunity for America to earn some yield (albeit, the scale is still a bit too small to move the needle for America’s broader debt issue).
Powell could buy and lock $CRV to steer governance parameters affecting $crvUSD
With Powell’s ability to control money printing, and $CRV’s thin circulating supply, it would be relatively easy for the US government to buy up the entire supply and adjust $crvUSD parameters to lower the borrowing rate. If the US government enters the $CRV wars with its money printer, it might be tough for other protocols to compete.
Powell could buy Conic Finance’s $CNC token and steer governance.
If the government wanted a cheaper alternative to buying up the outstanding $CRV supply, it could buy $CNC, which also has an outsize ability to control the $crvUSD ecosystem.
At the moment, the majority of the $crvUSD liquidity is finding its way into the Conic $crvUSD omnipool. Since Conic’s governance token can steer this liquidity as it likes, it could reapportion these pools balances to push the $crvUSD omnipool APR higher or lower. This would indirectly affect demand for $crvUSD, as a lower borrow rate would likely see users close their $crvUSD position.
Better yet, if Powell really cares to bring down interest rates, he could use this $CNC voting weight to add USDT/crvUSD to the Tether omnipool, or the USDC/crvUSD to the USDC omnipool. This would raise the yield rate for both pools, encouraging more deposits of USDT/USDC and thus bring the pools better into balance.
So as you can see, even though Powell’s influence is somewhat diminished as the web3 economy flippens the traditional economy, his whale status nonetheless gives him outsized ability to affect interest rates in $crvUSD.
So congratulations ser, your job may be safe for the time being!