This guide is meant to be a detailed overview of the f(x) protocol and ecosystem from a user's perspective. While I will provide some technical detail, if you are looking more information please see the docs as well as my list of people to follow and additional resources at the bottom of the post. I have found the f(x) community to be extraordinarily helpful, so please reach out to myself and others online. I also hope for this to be a continually updated resource over time that I will try my best to maintain it with all of the latest protocol and ecosystem developments.
The Basics
f(x) protocol provides a dual-token model that enables access to both:
non-liquidatable* variable leverage tokens with no funding fees and instant redemptions
decentralized, scalable, and capital efficient stablecoins with leveraged yield exposure
Let's jump right into an example to see how this works.
A user can start with ETH, an LST (liquid staking token) like stETH/(s)frxETH, or an LRT (liquid restaking token) like eETH. You can also use stablecoins like FRAX/crvUSD/USDC/USDT which will be conveniently swapped in the background for you to an LST or LRT depending on the pool.
Let us use the example of a user depositing 1 sfrxETH (I prefer it to stETH).
The user has a choice of two options:
(1) mint xfrxETH if you are bullish on the price of ETH: a non-liquidating variable leverage token with no continual funding fees or the possibility of liquidation from a late night scam wick. The amount of leverage varies between 1x-4x depending on the balance between "x" (leverage) and "f" (stable) tokens in the system. Unlike perpetual protocols you do not have to pay funding fees, which means you can simply hold these leveraged tokens in your wallet for as long as you wish (ie until the next bull run) without worrying about additional fees accruing. In exchange for this free leverage, you give up the yield from your underlying LST deposit, which is accrued to those who choose to mint the "f" token counterpart and deposit to its respective stability pools. You can also deposit your "x" tokens to some DeFi protocols, such as Timeswap, to squeeze out some yield on top of your leveraged position.
(2) mint fxUSD** if you are looking for stability and yield: a non-liquidating yield-boosted stablecoin pegged to $1 that is derived from your ETH/sfrxETH deposit. You can redeem fxUSD to your underlying deposit at Net Asset Value (NAV) at ANY time, without relying on 3rd party liquidity (no slippage!). You can hold or use your fxUSD throughout the DeFi ecosystem, or to further bolster the f(x) protocol and earn extraordinary yields you can deposit to a fxUSD stability pool; there are several to choose from depending on which token you would like to redeem to. In the case of the system going into stability mode during an extreme downward move from ETH (has yet to be triggered), some of your fxUSD will be redeemed, for example, to sfrxETH or xfrxETH depending on your pool of choice. But don't get too concerned if stability mode is activated, as you can think of this as selling a put option, where you get to automatically purchase some of your favorite asset at discounted prices! The stability pool yields, often in the 10%-30% range, are so high because those who stake their fxUSD receive ALL of the yield generated by the underlying LST that is deposited from minters of both the "x" AND "f" tokens! Additionally, 50% of protocol revenue is distributed to stability pools further boosting real yields, and the other 50% goes to the treasury. You can also make your deposit to the stability pool through the Convex Finance interface, where you get a socialized veFXN gauge boost***, ensuring you get the highest yield possible.
* Read more about what non-liquidating means here
** As a technical note for those who are inclined, here is some more detail. Let's say you deposit two different LSTs: Lido's stETH and Frax's sfrxETH. If you choose to mint "x" tokens you will get a leveraged version of each LST, labelled as such: "xstETH" for stETH and "xfrxETH" for sfrxETH. We'll cover the case of depositing with raw ETH in the next section. However, you will NOT see "f-stETH" or "f-frxETH" for the stable versions. In this particular case those two will be minted on the backend, and their collective value will back the singular "fxUSD" token. When you redeem your fxUSD you can choose the LST you would like to receive in return, depending on how much is available in the system. The naming conventions vary slightly between f(x) products, but the same underlying concept of f/x tokens remains the same for each asset.
*** In case you are not familiar with gauge boosting in DeFi, here you go. The various stability pools earn FXN emissions from the protocol, but there needs to be a decentralized way to decide which pools get how much rewards. Therefore, each pool has a "gauge" which can be voted on, with the amount of rewards distributed relative to the pools voting weight. But in order to vote you have to purchase, or earn, FXN and then lock it on the protocol for a time period of your choosing. The longer you lock the more veFXN you receive. Locking FXN for veFXN will give you the ability to vote on which pools you would like to receive higher rewards. The additional advantage to holding veFXN is that 75% of all treasury revenue is distributed proportionally to lockers based on your percentage of the total veFXN supply. However, this may not be feasible for some if: you're worried about gas fees, don't want to market buy a volatile asset, can't buy and lock enough FXN to make a difference on your pool, or all of the above because you aren't a whale. What to do? This is the power of Convex! Holders of FXN also have the choice of depositing via Convex to cvxFXN, which permanently locks all deposits into the protocol (and backs the CVX token 👀). Convex then max-locks all FXN for veFXN, and uses that voting power to boost yields to the stability pools. Therefore, depositing to a stability pool via Convex will ALWAYS earn a higher yield than depositing to the pool directly through f(x) even if you have no veFXN! If you're looking for the best of all worlds, you can both make your stability pool deposit via Convex for the free yield boost and deposit some FXN to cvxFXN so you can earn protocol revenue, with no time lock on your FXN. You should be aware that cvxFXN cannot be redeemed directly for FXN, but you can swap between them on Curve.
fETH
There is actually one other option you have when depositing with raw ETH or stETH specifically, which has some unique properties. Like before you have two options:
(1) mint xETH: just as before you can deposit raw ETH or Lido's stETH and mint a leveraged "x" token. This time however it will be labeled "xETH" instead of "xstETH". They are both based on stETH but they have different names because they technically have two different underlying pools with different counterparts. As opposed to the xstETH/fxUSD pair, this is a xETH/fETH pair. While xstETH/xETH only differ in that they are separate pools with different leverage factors, fxUSD and fETH are very different.
(2) mint fETH: a decentralized stable-ish store of value that doesn't suffer the downfalls of dollar pegged tokens like USD inflation. You can think of this as having the volatility of the ETH you deposit "split" between the f and x tokens. While the x token in option (1) inherits 90% of the price volatility of deposited ETH, fETH inherits 10%. This means that if the price of ETH moves up or down in one day by 10% your value in fETH will move by approximately 1%. fETH provides decentralized, censorship resistant, and reduced volatility exposure to ETH with the option for high yield through its stability pool. As before, you can redeem for your underlying deposit at NAV at anytime with no slippage.
Liquidity pools
While all of your f/x tokens can be instantly redeemed at any time with no slippage, some users may want to swap to/from f/x tokens and other stablecoins/assets. Therefore a variety of liquidity pools exist on Curve that allow for this, such as: FRAX/fxUSD, crvUSD/fxUSD, alUSD/fxUSD, USDC/fxUSD and others. The rumors online are that the volumes and liquidity in the USDC/fxUSD pool should expand significantly post-f(x) 2.0 as it will play a central role in facilitating the forthcoming fixed leverage tokens. If you are going to provide liquidity to one of these Curve pools, make sure to stake your LP tokens on the Convex interface to ensure you are getting the highest yield possible.
veFXN
f(x) allows you to lock your FXN for veFXN for a time period of your choosing, and there are several advantages to doing so. The longer you lock your FXN the more veFXN you receive.
(1) boosted yields: as mentioned before, if you lock FXN for veFXN, you can vote for which stability or liquidity pool you think should receive higher reward emissions. If for instance you have a large position in a single stability pool, it could be worthwhile to use veFXN to direct more emissions towards that pool, boosting your yield. Don't forget you can also make your deposit via Convex Finance and receive a socialized boost to your yield.
(2) revenue sharing: 75% of all treasure revenue is directed towards veFXN lockers, a true source of real yield paid out in wstETH, not token emissions. Many people have referred to this as a "perpetual onchain gas station". The other 25% of revenue goes towards incentivizing protocol solvency if the stability pools are ever exhausted.
My favorite product: arUSD
I hear you, after all of that you're just dying for several additional layers of risk and money legos because of your deep-seated love of composability and juicy yields.
You're not alone. Let's discuss my favorite f(x) product: arUSD! Follow these steps:
(1) make sure you understand what happened above when depositing ETH/LST. The same thing will happen here, but we'll take it one step further with Liquid Restaking Tokens (LRTs). If you have an LRT on hand, like eETH or ezETH, you can deposit that directly and you get your two standard choices of minting either a stable or leveraged token. If you want you can deposit ETH or an LST, and it will get restaked on the backend for you.
(2) Just as in "The Basics" section a stable token pegged to $1 will be derived from your LRT deposit, but to differentiate from the fxUSD derived from LST deposits, this stable is called "rUSD". It is otherwise identical to fxUSD. You also have the option of swapping to rUSD on Curve.
(3) You can now go to the Earn page to deposit your rUSD to arUSD. On the backend, f(x) deposits your rUSD into the weETH (wrapped EtherFi ETH) stability pool via Convex, and then deposits your staked rUSD to Concentrator, a sister protocol of f(x) under the Aladdin DAO umbrella. The Concentrator vault will regularly claim your rewards (weETH + FXN) and swap them back to rUSD for compounding into your arUSD position!
(4) By holding arUSD you also get leveraged points exposure: 6x EtherFi and 2x EigenLayer points
(5) It's also worth noting that because you have exposure to restaked ETH on EigenLayer through arUSD, you may be eligible for future airdrops provided by Actively Validated Services (AVS) on EL.
Now you've got a decentralized savings account, derived from censorship resistant money, with a familiar unit of account, native yield, leveraged points exposure, that's autocompounding without gas fees, and is currently earning about 1200x some tradfi savings accounts.
aFXN
If you understood what I just described in the arUSD section, aFXN works just about the same. You deposit FXN, which in turn gets deposited to cvxFXN on Convex, and then to Concentrator. All rewards are claimed and compounded into more cvxFXN. The yield is currently about 38%. You get high yields and price exposure in one position.
cvxUSD / xCVX
CVX is one of the first use cases of the f(x) system outside of depositing ETH/LST/LRTs and is a great example of the power of f(x) for any asset with yield generating opportunities.
(1) Start with some CVX, or zap in seamlessly from ETH or USDC. Depositing CVX helps to reduce the total circulating supply, and if you zap in f(x) will market buy CVX for you and then make the deposit, reducing supply and helping price action.
(2) Your CVX is then deposited into stCVX on Convex, which generally earns a lower yield than vlCVX but has no timelock and remains fully liquid. You can redeem for your underlying CVX at any time instantly and with no slippage.
(3) mint xCVX if you are bullish on the price of CVX. You'll give up your stCVX yield but benefit from non-liquidating variable leverage, currently around 1.5x.
(4) mint cvxUSD if you're looking for a $1 pegged decentralized stablecoin that earns outsized CVX yields. Similar to our previous examples, staking cvxUSD earns the yield deposited by all CVX in the system, currently in the 13%-30% range, a very significant boost relative to the stCVX APY.
btcUSD / xWBTC
I'm not much of a BTC kind of guy, but respect to where it all started and I have no doubt BTC will have a huge run through the coming bull cycle. This f/x pair works just about the same as all of the previous examples, but I will note a few key differences.
(1) I mentioned in previous examples that there are no funding fees on f(x). However, xWBTC is the one exception. Because BTC has no native source of yield, a funding fee needs to be charged on the leveraged token in order to provide an interest rate to btcUSD. Currently the funding rate per 8 hours is 0.0032%, and is based on the borrowing rate of crvUSD against WBTC. This fee is automatically deducted from your position over time with no manual interaction required.
(2) the leverage on xWBTC maxes out at 5.6x as opposed to 4x
Finding your truest inner degen with Spectra Finance
If you've gotten this far and are still yearning to reach the deepest depths of the rabbit hole, I present to you Spectra Finance. Spectra is an open interest rate derivatives protocol that allows you to earn fixed yield rates, speculate on yields, provide liquidity, or build apps.
Let's see what this looks like with the case of arUSD.
(1) fixed yields: currently arUSD is yielding ~12.7%. If you think this rate is either going to trend lower over time or that it will regularly experience interest rate volatility, you can hedge this risk by fixing your yield. You can monitor the fixed yield available on arUSD here, which changes over time based on liquidity provision and pool utilization. If the listed APY is either higher than the APY listed on the f(x) UI here, or is sufficient to you based on the pools maturity, it would benefit you to deposit arUSD for PT-arUSD. PT stands for "principle token" which is your fixed yield receipt. "Each PT is redeemable for 1 rUSD at maturity." You should also note that holding PT-arUSD will forego your leveraged points exposure to FX/EtherFi/EigenLayer points.
(2) speculate on yields: if you think the interest rate on arUSD will trend up over time and/or believe that the leveraged points accruing, the value of which is currently unknown, will be worth more upon release than the markets current expectations, then you may consider purchasing YT-arUSD (yield tokens)." Each YT is entitled to all the extra yield and points on top of one rUSD deposit in f(x) protocol (with the multiplier)." YT-arUSD is currently earning up to an unbelievable 47x FX points, 94x EtherFi points, and 31x EigenLayer points.
(3) provide liquidity: if you're looking for the best of both worlds you should consider providing liquidity to the arUSD pool (LP-arUSD). You "retain most points and yield from arUSD while earning incentives and swap fees". In fact there are up to 5 different yield sources in one position:
native arUSD yield
3x FX points, 6x EtherFi Points, 2x EigenLayer Points
Exposure to PT tokens in the LP giving you partial fixed rates
LP swap fees
LP rewards in the form of APW tokens (Spectra was previously known as APWine)
I'm looking forward to seeing a Spectra pool for the Morpho arUSD/USDC vault 👀
Global fixed income markets (PT) in 2023 were valued at over $140 TRILLION USD and the global interest rate derivatives market (YT) was valued at $530 TRILLION USD 🤯
What about points?
Points have been a big trend throughout 2024 and f(x) gives you several ways to participate.
(1) if you hold rUSD in any of the 4 stability pools or arUSD you are earning 6x EtherFi or Renzo points and 2x EigenLayer points
(2) f(x) protocol has implemented FX Points to incentivize holding and utilizing f(x) assets. For every "1 fToken staked in any stability pool and/or LP on Convex/f(x)" you receive 4 FX points/day. For "1 xToken held in wallet and/or LP on Convex/f(x)" you receive 2 FX points/day. For every person who inputs your referral code when using f(x), there will be a 50-50 split in points being received for that specific deposit/mint. FX points can be redeemed every month for FXN. Please consider using my code if you've learned something so far.
(3) if you purchase and hold YT-arUSD on Spectra Finance you can earn up to an astonishing 47x FX points, 94x EtherFi points, and 31x EigenLayer points.
What's to come
What is being referred to as "f(x) 2.0" should be released in the coming month or so, here's what we know so far:
Fixed leverage tokens, ex. 2x/5x/10x, with zero liquidation risk
Those leveraged tokens have something called a "liquidation break", which I imagine is a way for the token to maintain its approximate desired leverage, within a small range, while also limiting the possibility of liquidation. You can think of it like "soft liquidations" from Curve's LLAMA lend mechanism.
There has been some mentions on twitter about simplified copy-trading
Eventually the factory will be permissionless, but don't think this will be in 2.0
Short leveraged tokens have been confirmed by team, but no ETA
afxUSD has been confirmed by team (auto-compounding fxUSD)
full white paper release coming soon
deployment to L2s
Overview of key features
scalable and capital efficient decentralized stablecoins with instant slippage-free redemptions
real yield generated from protocol revenue sharing, ETH (re)staking, vlCVX voting incentives
a new defi primitive: the f(x) invariant expressed as a dual f/x token model
non-liquidating leveraged asset exposure with no funding fees
decentralized and reduced volatility exposure to ETH
sustainably high stablecoin yields
leveraged points exposure
Wishlist
Until the factory becomes permissionless, here are some tokens that I think would be a great fit for the f(x) system:
fCRV / xCRV - lock CRV for veCRV or a liquid wrapper, Curve is core defi infrastructure
fFXS / xFXS - sequencer revenue from Fraxtal and other products will boost veFXS APY
fCLEV / xCLEV - CVX redemption arc will have concomitant effects for CLEV APY/price
xafcvx / xafCVX - afCVX should develop premium over CVX because of APY/token model
fVELO / xVELO - permalock deposited VELO to incentivize FXN/fxUSD/rUSD liquidity on L2
fAERO / xAERO - permalock deposited AERO to incentivize FXN/fxUSD/rUSD liquidity on L2
fxBASKET / xxBASKET - bringing interest bearing RWA's into f(x) seems like a huge unlock
fKLIMA / xKLIMA - Klima is the largest onchain carbon market, another unique RWA option
fFXN / xFXN - seems like a no brainer. veFXN revenue will be up only post-2.0 release.
Other wishes:
Better dashboard support: unfortunately DeBank and Zerion just don't give me the comprehensive view of my assets in the f(x) ecosystem that I would prefer. For instance, I have Convex vaults for fxUSD/rUSD/fETH/cvxUSD but they usually have all of their underlying ETH and its total value lumped together rather than showing you how much fxUSD you have in dollar terms which would be more useful given the nature of the product. They also tend not to pick up accurate prices for assets deposited on other protocols like Spectra Finance. The team should work with DeBank/Zerion to develop a streamlined process to more accurately integrate their current and forthcoming product suite, it's really critical for DeFI power users.
Risk Disclosures
"f(x) is a new protocol. Users should be aware that there are risks with staking tokens in any of the staking pools listed above. It is possible that the f(x) system will enter stability mode for various assets in volatile market conditions. User’s supplied assets may be redeemed for ETH, an ETH Liquid Staking Derivative or an xToken depending on which stability pool their tokens are deposited. Please proceed with caution."
Additionally, as with any user interaction in DeFi, there is always smart contract risk to consider. You should never conduct a transaction without a security tool like Kerberus or a transaction simulation from a wallet like Rabby.
Nothing in crypto is risk free. None of this should be taken as financial advice.
People to follow
Personal shoutout to @Cryptovestor77 and @CryptoISFreedom i've learned so much from them 🙏
https://x.com/Cryptovestor77 - community educator/booster
https://x.com/CryptoISFreedom - community educator/booster
https://x.com/FxIntern - intern
https://x.com/protocol_fx - official protocol account
https://x.com/sharlynwu - f(x) team member
https://x.com/cyrille_briere - Aladdin DAO team member contributing to f(x)
https://x.com/kmets_ - founding member of Aladdin DAO
https://x.com/bubrub386329 - community educator/booster
https://x.com/aladdindao - mother org
Resources
Last updated: September 19, 2024