Upending the FIRE game through DeFi stablecoin yield farming
Decentralized finance, or DeFi, is a broad term that refers to projects on Ethereum and other smart contract platforms that are rebuilding the world’s financial infrastructure on the blockchain. While it is certainly risky, the rewards are currently beyond anything available within traditional finance. Just look at your “savings” account. The amount of yield currently available among DeFi projects can put financial independence within reach for many people. Here, I take a deep dive on how I positioned myself for reFIREment, and allocated an emergency fund that will hopefully pay for itself and allow me to live my dreams.
I won’t get into the details of fiat on-ramps or using the Ethereum network, nor do I endorse blindly following my any of my positions. Black swan exploits and rug-pulls are still a huge risk, and my purpose here is to discuss the analysis and decision-making process that I went through in order to mitigate some of that risk. I hope you find it useful.
Disclaimer: Not financial advice; don't risk what you can't afford to lose; do you own research.
I’ve been in crypto since late 2014, and like to say that I’ve been all-in since 2017, when I spending most of my free time studying the space. During the 2018-2020 crypto winter, I kept my head down and accumulated as much BTC via dollar-cost averaging, and pivoting my self-directed IRA funds into crypto-related equities positions such as Grayscale’s GBTC fund, as well as bitcoin mining plays like Marathon and Riot. I also made what is arguably the trade of my life in November 2020 with Voyager Digital, a Canadian based exchange that does business in the US and is traded publicly via OTC markets. It’s now up over 5000% in the last six month, (as of April 6, 2021), and my IRA is up 10x in the last year.
The start of the Bitcoin bull run in Q4 2020 was very lucrative for me. There were days when I would wake up and check my IRA balance and see gains equivalent to a years’s salary. On top of that, I made a very risky, but calculated bet on BadgerDAO that paid of handsomely and netted me a six figure gain in a month and a half.
My professional career and day job has been remained of crypto during this time but there’s been a tension between my crypto activities and my job responsibilities that has weighed on my morale for some time. The last few months have made that situation untenable. The truth is, I’ve wanted to leave my job for several years, but inertia has kept me comfortable and lazy, and I finally decided that I needed to give myself a deadline and announce it publicly. That would give me the accountability I needed to keep from backing out, or making excuses to stay. So I gave myself a deadline ninety days out, and told my wife and my boss.
My wife has been a hard sell. She’s been with me through some of the lowest periods of my life, and worries about me stepping away from my job with a mortgage, student loan debt, and two young children. A few years ago, she got into the FIRE movement, which stands for financial independence / retire early. We can debate what the retire early part means, but basically it means work on your own terms, not having to live as a wage slave for a meaningless job, and having the freedom to take a vacation or sabbatical, or work on projects that you want to, not those you have to.
The basic idea behind becoming FIRE is increasing your savings rate. This is better achieved by cutting expenses, increasing income has a somewhat lesser effect. The general rule is 25 times annual expenses (300 times monthly) will give you your FIRE number. The assumption is that this FIRE number, when invested properly can provide a four percent return on investment that can pay these annual expenses without depleting capital. This is known as The 4% Rule.
Crypto, especially DeFi throws this 4% Rule out the window. Lending platforms like BlockFi are offering upwards of 8% annually on USD stablecoin deposits, and established on-chain platforms like Yearn or Curve are easily providing 20-40%. Other, riskier platforms provide even larger incentives as a reward to early investors as part of their bootstrap plans; it’s not unheard of to see short term annual yield rates in the hundreds or even thousands of percent.
My main challenge was to figure out how to placate my wife and avoid selling off a huge portion of my liquid assets to pay off debt. From an opportunity cost, it doesn’t make sense to pay down debt at 3% interest when USD-equivalents are yielding double or triple digit gains and Bitcoin is appreciating an average of 200% annually? The idea came to me via this BadgerDAO Improvement Proposal, BIP 48.
To summarize the BIP, the BadgerDAO treasury had a surplus of capital available that was going unused. They determined what their current annual run-rate was, multiplied it to account for growth, and set that aside. The rest of the funds would be deployed in yield protocols to earn yield. Funds would be allocated into three different tranches, where they would be deployed into varying projects rated by risk.
A (Low)- Established protocols: 5-40% APY
Aave, Compound, Yearn 3crv pool
The BIP fascinated me. Although risk-tranching is a standard practice for financial firms, it hadn’t been part of my planning before. I started delving into it further, and came up with the following plan.
- Liquidate enough cryptoassets equal to a year’s salary in USDC (or other stablecoins). This would give me about 18 months’ expenses on hand.
- Distribute these funds into various yield farming projects based on my preferred allocation. Among the five options given in the chart above, number one provides the best balance between risk and reward. To further reduce risk, each tranche would contain at least two different projects.
- Let funds accumulate yield, allowing me to retire while focusing on crypto, riding out the BTC bull market over the rest of the year and working on projects that I find meaningful. I can reallocate as necessary, and when the market turns around, I’ll can sell (or lend) a lesser portion of my BTC to pay off debt, preserving the rest. And I’ll still have have fairly liquid stable assets that I can pull to fiat quickly if I’m unable to generate income or (gasp!) have to go back to regular employment.
That’s the basic gist, and while there are some additional details to work out such as how to retire my wife and where we get health insurance, this is the the plan that we’re sticking with for the next two months. And I’m happy to say that I’ve put my resignation in at work, and my wife is reluctantly on board with the plan!
My experience Yield Farming with DeFi the last six or nine months far has mainly been limited to Yearn vaults, which rely on Curve.Fi AMM pools underneath. The Curve swap pools contain various flavors of stablecoins, which are pegged to the dollar. Since they’re supposed to be pegged to each other, the Curve pools can provide large swaps with very little slippage. The pool takes a small fee, which is then distributed to liquidity providers. The most prevalent Curve pool, called the 3pool, contains the three most popular stablecomins, DAI, USDC, and USDT.
On top of the base APY, Curve pools are incentivized with a rewards APY, paid out in Curve’s native CRV token. The low end of the rewards curve is paid out to depositors who stake their 3pool tokens in the Curve gauge, which is also called a faucet in other DeFi protocols. The high end of the rewards APY is paid out to those who stake their CRV tokens, locking them anywhere from a week to four years. The longer the stake, the more voting escrow, or veCRV tokens, and the higher the boost, up to a total of 2.5x.
Yearn vaults automate this process, claiming CRV rewards, locking veCRV for the boost, and liquidating and reinvesting the rest into the pool. In the V1 vaults, this process was performed by users as they deposited and withdrew funds from the vault. This is very expensive, gas wise, and has been outsourced to bots in the V2 vaults, making it much easier to enter and exit. Yearn takes a portion of the profits, but it’s still much more profitable than manually performing the process and accumulating large gas fees.
That’s the general idea behind Curve and v Yearn, and is important to understand as it’s essentially how all yield farming works. Liquidity providers earn pool fees on swaps, and protocols incentivize them with additional token rewards. It gets really complicated when one tries to provide a risk assessment of the thirty-two Curve pools and forty-plus Yearn vaults. In addition to the 3pool tokens, Curve has pools for a number of newer stablecoin projects, interest bearing versions from CREAM, Compound and Aave, and other assets like ETH and LINK.
After excluding pools that did not directly hold USDC and analyzing base and rewards APY, I determined that the Yearn 3crv pool was one of the safest bets for the A tranche. By autocompounding CRV it reduced exposure to fluctuations in CRV’s price, and limited exposure to the three most battle tested stablecoin assets. But there was still additional risk associated with Curve’s smart contracts, as well as Yearn’s as well. The question then became, how do I evaluate the level or risk associated with these various protocols.
That’s when a tip led me to DeFiSafety. It’s billed as a rating service for DeFi applications, and reviews their smart contract quality and safety. You can read their review process here. In a nutshell, it looks at four areas: code and team, documentation, testing, and audits, and then assigns a score based on a matrix that they put together. In order for a project to get a high score, they need public code repositories and audits, and good test coverage which can be replicated by the reviewer. I incorporated their scores into my evaluation list. I also talked to the team about collaborating and using their template as a starting point for my own reviews. They were okay with that, and I started working on a review for Integral, but the contracts weren’t public, so I didn’t get very far with it.
One of the big problems that I struggled with was trying to figure out some sort of risk assessment for protocols that used other protocols as legos. For example, Yearn V2 gets a DeFiSafety score of 93%, but depends highly on Curve, which is 77%. What is the relative risk between the two? And what about Curve pools themselves? How should we rate the various Curve pools themselves, which are made up of various stablecoins. Most of the Curve pools rely on the 3pool (DAI+USDC+USDT). How would we compare the relative safety of each of these three versus the others that added the other, newer tokens? I put them in a spreadsheet and mapped them out with their APYs. After marking out the ones that didn’t have stable coins or used some sort of USDC derivative, I finally settled on the 3pool as the safest of the lot, and decided that it would make up the first selection in the A tranche.
Another problem I struggled with was how to differentiate between platforms that paid out in stablecoins versus those that paid out in a secondary token, usually governance. Yearn was attractive since it compounded the results, but it was really the exception to the rule for most on-chain platforms. I eventually decided that I would sit on any tokens that were the results of rewards, and only claim them when I reassessed things closer to my June 1 retirement date.
Ultimately, I wasn’t able to settle on a complete, formal evaluation. I used the original APY risk as the main factor. Nothing without a DeFiSafety score could be an A. Anything that was new or pre-launch got a C rating. I didn’t do a complete ranking of all 34 project on my evaluation list, just enough for me to make a decision. It was already too much information to process, and I knew that too much information would ultimately be worse than too little. Instead of waiting to come to a full decision about the entire portfolio, I decided to deploy funds as settled on projects.
One of the suggestions for the original BIP was that no more than 40% of any tranche could be allocated to a single project. I vetoed that, and settled on two or more, as it would reduce the amount of gas fees that I would have to worry about. Nevertheless, I eventually wound up deploying into a total of eight projects all together, after I wound up liquidating more funds than I had originally planned on. The projects that I picked, by deployment, are : Yearn USDP pool, Curve 3 pool, Integral, Yearn crvIB, Ellipsis, MStable, Voyager, and ForceDAO. Here they are by tranche:
A Tranche: Safest project, 60% total allocation
Yearn 3crv (~20%, native): I described my reasoning previously, USDC + DAI + USDT are probably the three most popular stablecoins, and Curve’s 3pool is the foundation for most of the pools in the Curve ecosystem. Yearn’s CRV holdings give it a healthy 1.5x boost, more than I could get on my own.
Voyager (reflink) (9%, native): It was a close call between this and BlockFi, but it ultimately came down to two things, Voyager’s APY is slightly higher, and I can get my withdrawals same day when I’m ready. This is going to be my primary spending pool if I get to the point where I need to start paying some bills, so sending funds via ACH to my checking account is EZPZ. Once BlockFi gets their credit cards rolling out I’ll probably move funds over there to take advantage of the 1% BTC cashback program when it comes time to buy groceries.
B Tranche: Riskier projects, 30% allocation
Yearn crvIB (~30%, native): Don’t ask me to explain how the Iron Bank works. It’s the result of Yearn’s acquisition of C.R.E.A.M, and is serving as a line of credit to whitelisted protocols like Yearn and Alpha Finance. I hopped into this one because early voting among veCRV holders indicated that the IB was going to get a massive boost (731-1828%), so I aped in. Yields came down quite a bit, but gas fees were quite heavy so I’m going to have to stick it out for a while yet. APY is too low for the B tranche, but is too risky for A considering the exploit that drained it of $37m earlier this year.
Curve USDP (~44%, CRV rewards): This one, holding 3pool + USDP, is a holdover from before this process started, and before I understood how to get the CRV boost. For the record, the Yearn crvUSDP pool is only getting a measly 48% after fees, and I’m happy earning the CRV rewards now that I understand how it works. This is currently the highest yield pool on Curve if you don’t have a boost and want to get CRV. I have no idea what USDP is, for the record.
mSTABLE mUSD/BUSD (~50%, MTA rewards): Here things start getting a bit tricky. I’ve been following mSTABLE for some time, and have been impressed with their growth. mUSD is a “meta-stablecoin basket based on USD”, so there’s a bit more risk here. We’re also holding BUSD, which is Binance’s USD stablecoin. Rewards are paid out in their native MTA, 33% of which can be claimed immediately, while the rest “stream linearly for 26 weeks”.
A bit of a side note on mSTABLE. They currently have a 3x reward boost available, which is what drew me to stake with them in the first place. It works like CRV, you lock up MTA tokens for varying length of time, earning vMTA tokens, which gives you voting power and also boosts your LP. There’s revenue sharing rewards as well in the form of MTA tokens. I used their calculator wrong, wound up seriously underestimating the amount of MTA tokens I would need to get the max boost, and ultimately spent too much gas on something I didn’t need to. I estimate that you’d need more than three times the amount of capital deployed in the pool tied up in MTA tokens for half a year, which didn’t make economic sense for me. Alternatively, Yearn has a Curve mUSD vault that does this for you, but it’s only earning 33% right now.
C Tranche: Pre-launch, high risk: 10% allocation
Integral.Link USDC/WETH LP (200% ITGR, est.): Here in the C tranche we start getting into the new launches. Integral is a very interesting one. I encourage you take a look at their docs for a further explanation, but they’re basically trying to offer a low slippage whale exchange for swaps, while offering no IL for LPs. Because of their focus on negating IL, we went ahead and matched our USDC with some ETH. They’ve got over $700m in TVL, and even had to cut their rewards after they got more deposits than they thought were healthy. They’re taking a very slow, methodical approach to their launch, and have only allowed one pool to go live, even after several weeks post-launch. They’re definitely taking the long-view here, trying to cut both arbitreurs and mercenary capital out of the system. Rewards will vest over a six-month period, and the token isn’t even tradeable yet, so this could be a very risky play. That said, I think the possible payoff for success is very high. Make sure you check out their public seed round, I don’t think you’ll see a fairer launch in DeFi.
Ellipsis.Finance 3pool (64% EPS, plus 1340% for locked EPS): So now we head over to Binance Chain. Ellipsis is a Curve Finance fork, apparently sanctioned by the team. There’s a lot of game theory here, so hold on. First off, there are weekly airdrops to veCRV holders that you have to consider. The 3pool is exactly the same as the Curve 3pool which we described earlier. Native swap rewards are less than a percent, but EPS rewards were over 100% when we started, and are now down to 60%. EPS rewards, once claimed, vest for three months, but can be claimed at a 50% penalty at any time before that. EPS tokens can also be staked, again for three months, and are currently earning over 1300% in BUSD and EPS tokens.
Again, the game theory here is very hard to understand. You can read about some optimization attempts here, but I’m basically watching the APY. Since vests are locked by week, it basically makes sense to take the penalty if the stake APY would make up for the penalty in less time than the vest. Right now, you’re basically looking at one to two weeks to make up that 50% penalty, so I think the right thing to do currently is to claim, withdraw, and stake EPS about once a week. At some point, my staked rewards will be more than my deposit APY, and then I can pull my LP elsewhere and ride out the three months of rewards.
That said, EPS has dropped from eight dollars to $3.40 at this point, so there’s a huge inflationary risk here. On the other hand, the 3pool did $71m in volume today, so the potential for BUSD rewards in the long term could pay off nicely. And more pools are coming. If Ellipsis does follow Curve’s trajectory, getting in at this stage could be very lucrative.
ForceDAO xUSDC (26% Native, 86% xFORCE): This one has been a bit of a disaster, and is a perfect example of why we’re tranching in the first place. There was a lot of hype around launch, an airdrop was coming, so we aped in and staked our tokens. Then there was a hack. You can read about the technical details here, basically they copied code from two different systems, one for the token, another for the vault, and each one used a different error handling mechanism. Whoops. I didn’t lose any of my primary funds, but it’s been several weeks while the team has relaunched their xFORCE token, and are preparing for a new launch on April 26th.
I definitely should have done more due diligence on this one. We got lucky. And to be honest, I’m not terribly impressed with the project. They mix serif and san serif fonts on the web page, (ew.. /jk) and I wasn’t terribly impressed with the way some of the mods were dealing with people in the Discord post-hack, but I get that they were under some stress. I think the main discouraging factor for me right now is the reputation that the project has among some of the other DeFi teams, there seems to be a general derision toward them for the, how do we say, way the purportedly plagiarized several projects without providing anything in the way of innovation. I’m not sure what I’m going to do. For now I’m going to wait till I can get my hands on my xFORCE airdrop and see where the price stabilizes at. I might want to dump and get out.
Keeping track of these positions is a bit difficult. Some of them are available in tools like Zapper so I at least can account for them in my net worth calculations, but for the most part I’m keeping track of yields and performance in a Google Sheet. A rather complicated sheet. I’m tracking deposits, fees, base and reward APYs, available funds, nominal base and reward values. I’m also tracking the expected return against the actual profits.
Percentage-wise, I’m expecting a 38% return. It’s not quite enough for me to live off of, especially not if I have to tap into it to pay the bills. Expected interest on a tranche by tranche level is below our original plan as well. And when you consider fees, (mistakes,) and various reporting irregularities, the actual yield is negative, but we’re only two weeks in an haven’t seen any rewards from Integral yet.
Updating these number is a manual process right now, some sort of automatic dashboard would be preferred. I’ve been working with various tools that allow me to pull on-chain data, getting this into Google Sheets is another thing entirely. And right now it’s a static snapshot, unable to give me an accurate history. I’m not quite sure how to build a historical report yet. There may be a way to do this using something like Dune Analytics, but it’s way beyond my ability to put together at this point.
For now, I’m just keeping an eye on these projects and seeing how they go, I went into this expecting that I’d be doing a quarterly rebalance, as mainnet gas fees are too much for some of the smaller position sizes that I’m dealing with. BSC and other L2 chains change this calculus a bit, but we’ll leave that for another discussion. There are a lot of other interesting projects that I’ve been following, Alchemix is fantastic as an exit plan, and there are a number of wBTC projects that I’m farming right now (Vesper, Klondike, Badger, Bancor) that I could get into, but I think this is enough for people to try and digest.