USDs earns organic yield for holders and the yield is paid out in USDs approx. every 7 days
USDs stands out from other stablecoins thanks to its inflation fighting Auto-Yield feature. USDs is novel in the stablecoin ecosystem, because it requires no action by the user. Users do not need to stake USDs nor spend gas to claim their yield. One simply holds USDs, and their wallet balance will grow.
The collateral received for minting USDs is deployed in other audited, defi projects to generate organic yield. USDs collateral earns yield in the form of reward tokens and swapping fees from the pools. This yield is shared between USDs holders and SPA stakers (The split is 50% for Auto-Yield and 50% for SPA buyback and burns. This share can be changed through governance).
Gas free yield: 50% of yield generated on USDs collateral is used to mint USDs. This USDs is distributed to anyone who holds USDs in their wallet.
The actual yield generated depends on the yield rate of the strategies where collateral is deployed. However, the protocol will try to maintain a target yield of 11% APY (maximum) so that USDs holders get stable returns irrespective of market conditions. Any yield generated over 11% is stored in the protocol to help fund the APY for lean periods when actual yield generated is less than 11%.
Different yield generation strategies are proposed by the community/team and evaluated by the community based on their yield generation potential, risk profile etc. Community then votes to choose pools/farms where collateral will be deployed. Following strategies are being used for yield generation. We will keep updating this list to include newer strategies approved by the community.
- 1.Frax | Curve-LP FRAX/VST - FRAX and VST from vault-core is deposited into Curve FRAX-VST pool and the LP tokens are staked in the Frax gauge. Revenue generated from the strategy is in the form of fee (in FRAX and VST) and farm rewards (in FXS and VSTA)
- 2.Stargate | Stargate-LP USDC - USDC from vault-core is deposited into Stargate USDC pool and the LP tokens are staked in the Stargate farm. Revenue generated from the strategy is in the form of fee (in USDC) and farm rewards (in STG)
- 3.Aave | DAI - DAI from the vault-core is lent to Aave DAI market. Revenue generated from the strategy is in the form of fee (in DAI) and rewards (in Aave)
Old strategies that are not in use / deprecated
Curve | Curve-LP USDC/USDT [Old strategy, currently not in use] - USDC and USDT from vault-core was deposited into Curve 2 pool USDC-USDT pool and the LP tokens were staked in the Curve gauge. Revenue generated from the strategy was in the form of fee (in USDC and USDT) and farm rewards (in CRV)
Saddle | Saddle-LP FRAX/USDC [Saddle sunset] - FRAX and USDC from vault-core was deposited into Saddle FRAX-USDC-BP and the LP tokens were staked in the Saddle gauge. Revenue generated from the strategy was in the form of fee (in FRAX and USDC) and farm rewards (in SDL)
USDs held in EOA wallets, i.e. non-contract addresses, will receive auto-yield on a regular basis. For now, USDs that are deployed by users to yield-earning strategies within the Sperax suite of yield farms will not receive auto-yield.
By default, smart contracts holding USDs are not included in the yield distribution process and do not earn any yield. A smart contract’s USDs balance remains the same after an auto-yield distribution event. However, based on community’s feedback and once approved by veSPA holders via Snapshot voting, the Sperax team can whitelist specific smart contracts to be part of auto-yield, and provide technical support to determine whether a protocol is compatible with the auto-yield feature of USDs.
USDs follows the ERC20 token standard. A wallet holding USDs should expect its USDs balance to increase automatically over time. This increase is triggered by a distribution event that happens on average every 7 days. The earned USDs are not explicitly transferred into the user’s wallet, instead a global parameter is changed to update the holder's balance.
Unlike most ERC20, where the token contract directly stores the amount of tokens each wallet holds, USDs’ token contract has a shared state variable creditPerToken, and the contract stores each wallet’s credit. A wallet’s balance = credit / creditPerToken.
When yield is generated:
- 1.The yield is swapped for USDs in the open market
- 2.The USDs from step (1) is burned
- 3.The value of creditPerToken is *decreased globally and therefore every wallet’s balance increases (since every wallet’s credit is unchanged during this process)
*: creditPerToken is decreased according to the amount of USDs burnt in step (2) such that total supply of USDs remains unchanged after steps (2) and (3)
The circulating supply of USDs remains unchanged through this process as the USDs that are bought from the market are burnt and then the USDs balance of the holders increase proportionally. As a result, a user can expect its USDs balance to increase automatically over time without any additional USDs explicitly being transferred to the user’s wallet.
Yield is distributed approximately every 7 days. The exact distribution time is determined in a quasi-random way. We have decided on this randomised distribution time to prevent users from timing their USDs minting and redeeming with yield distribution events. Huge spike in minting or redeeming around the time of yield distribution can put strain on the peg and this randomisation works as a defence mechanism for maintaining peg.