To understand Ethena’s USDe, it is useful to consider it in relation to other stablecoins. Fiat-backed stablecoins like USDT or USDC are backed by dollar-denominated assets (e.g. short-term treasuries) held off-chain by their issuer (Tether or Circle). Since USDT and USDC are backed by dollars, the issuer can issue one stablecoin for each dollar in reserve. For crypto-backed stablecoins like USDS (formerly DAI), the issuer must over-collateralize each stablecoin issued because the underlying collateral fluctuates in price (relative to the dollar). So a user might have to deposit $1.50 worth of ETH (or BTC) to mint 1 USDS, to account for the fact that the price of the collateral (ETH) might drop relative to the debt (USDe). For this reason, USDS (DAI) has often been criticized as capital inefficient.
One way to address this problem is to hedge the risk that the collateral drops in value. This the approach taken by Ethena. Ethena allows users to mint 1 USDe by putting up $1 worth of ETH (or BTC) as collateral. Ethena holds this collateral, but then opens a short position for $1 worth of ETH on a centralized exchange (like Binance). You can see exactly which exchanges Ethena is using on their transparency page.
This allows Ethena to mint USDe without over-collateralizing. If the price of ETH drops, the short position will make up the loss.
Generating yield
Ethena effectively shorts its collateral using perpetual futures contracts, and during bull markets the funding rate is usually positive, meaning that Ethena gets paid to hold these short positions. The funding rates are fairly volatile, but can be quite high. Currently (January 2025), the funding rate on Binance BTC perpetual futures is 0.01% every 8 hours, which translates to roughly 11% APY.
In order to juice yield more, if the user deposits ETH to mint USDe, Ethena stakes the ETH with Lido, earning an additional 3% or so APY.
Distributing yield
Although Ethena’s rapid growth is mainly attributable to the yield it pays users, Ethena does not distribute yield to USDe holders. Instead, in order to receive yield, you must opt-in to receiving yield by staking your USDe with Ethena. Users who stake USDe receive a yield-bearing asset sUSDe.
Ethena generates yield on all the assets backing USDe, and then only distributes this yield to the fraction of users who’ve staked their USDe. For example, if the Ethena protocol is generating 8% yield on its collateral, but only 50% of USDe holders have staked, the sUSDe holders will receive 16% yield. This type of mechanism is often called “Yield Amplification” (or “Yield Discrimination“), and Robert Leshner called “Yield Amplification” his favorite mechanism of 2024
Historical yield
The plot below shows the effective APY you would have received if you had staked USDe at a given date and left it staked for either 1 month or 1 quarter.
The plot below shows what fraction of the circulating USDe was staked at a given time. The less USDe that is staked, the higher the yield amplification. This means that Ethena is “anti-reflexive” — as the underlying yield goes up, more people should stake USDe, and the yield amplification should decrease. Conversely, when the underlying yield goes down, more people should unstake, and the yield amplification should increase. Ethena’s founder, Guy Young, discusses some of Ethena’s other anti-reflexive properties on The Chopping Block.
The figures were generated by plot_ethena.py
Calculating Yield
The sUSDe contract is implemented following the ERC-4626 “vault” standard, which means that it supports the previewDeposit() and previewRedeem() functions.
previewDeposit()tells you how many LP tokens (in this case sUSDe) you would get for a given deposit of the base asset (in this case USDe).previewRedeem()tells you how many USDe you would get by “redeeming” (effectively burning) a given amount of sUSDe.
By calling
deposit_amount = 100
lp = previewDeposit(deposit_amount).call(block_identifier=start_block)
withdraw_amount = previewRedeem(lp).call(block_identifier=end_block)
deposit_amount between the blocks start_block and end_block.These data are collected by ethena_returns.py. Running this script requires a full archive node.
Note: An alternative method for calculating yield is to look at the price of sUSDe on the market. Since sUSDe is not rebasing, the ratio of the price of sUSDe between two time points will give the yield you would have received if you had staked (or bought sUSDe) at the first time point and sold (or redeemed) sUSDe at the second time point. Unfortunately, as the market price of sUSDe is not available on chain, so we cannot use this method.
Calculating staking
To calculate the fraction of USDe that’s staked as sUSDe, we can simply call the totalSupply() function on USDe to get the total supply of USDe at a given block height, then call the balanceOf() function on the USDe contract to get the balance of USDe held by the sUSDe vault. This ratio will give us the fraction of USDe staked as sUSDe.
These data are collected by ethena_staking.py. Running this script requires a full archive node.


