Auto Yield

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%.

Yield Strategies

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.

Strategy list as per SIP-55:

  • USDC:

    • Compound (USDC)

    • Aave (USDC)

    Maximum cap of 75% of total USDC collateral for each strategy.

  • USDC.e:

    • Compound (USDC.e)

    • Stargate (Stargate-LP USDC.e)

    • Aave (USDC.e)

    • Curve (FRAX-USDC.E)

    Maximum cap of 50% of total USDC.e collateral for each strategy.

  • DAI:

    • Aave (DAI)

    • Radiant V2 (DAI)

    Maximum cap of 75% of total DAI collateral for each strategy.

  • USDT:

    • Aave (USDT)

    • Stargate (Stargate-LP USDT)

    Maximum cap of 75% of total USDT collateral for each strategy.

  • FRAX:

    • Frax (Curve-LP FRAX/VST)

    • Curve (FRAX-USDC.E)

    Maximum cap of 75% of total FRAX collateral for each strategy.

  • LUSD:

    • Camelot (LUSD-USDC V2 Pool)

    • Aave (LUSD).

    Maximum cap of 75% of total LUSD collateral for each strategy.

Old strategies that are not in use / deprecated:

Curve | Curve-LP USDC/USDT [Not in use]

Saddle | Saddle-LP FRAX/USDC [Saddle sunset] Frax | Curve-LP FRAX/VST [Vesta sunset]


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.

Auto-yield distribution mechanism

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 distribution frequency

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.

Last updated