Notional Exponent: How it Works

Teddy Woodward
Teddy Woodward

Notional Exponent is the world’s first leveraged yield protocol that is purpose-built to enable new yield strategies that are optimized for the leveraged yield user.

This post is about the technical architecture that delivers this value proposition. Specifically, we’ll illustrate how each of the core components of Notional Exponent work and unpack the technical innovations that underpin the protocol’s groundbreaking new feature - smart withdrawal.

Architectural overview

User interactions on Notional Exponent are orchestrated by three primary types of contracts - lending routers, vaults, and withdraw request managers.

  • Lending routers manage the interactions with the underlying lending protocols and the Notional Exponent yield strategies on behalf of users.
  • Vaults manage asset deposits and withdrawals and hold the yieldTokens that generate yield for users.
  • Withdraw request managers handle staking and redemption of yieldTokens from the issuing protocols.

Lending routers

Each lending protocol (like Morpho, Euler, or Silo) has its own dedicated lending router. Aside from a few edge case functions, a lending router manages all the interactions with Notional Exponent vaults and its corresponding lending protocol on behalf of users.

Actions like establishing a leveraged position, adjusting your leverage, or exiting your position all originate by calling the lending router.

Here’s an example flow diagram of what happens when a user enters a leveraged position on Notional Exponent.

Except for a few edge cases, users can’t directly interact with Notional Exponent vaults. Lending routers are exclusively authorized to mint, burn, and approve transfers of Notional Exponent vault shares. 

This means that establishing and managing leveraged positions on Notional Exponent must be mediated by the protocol’s lending router contracts. 

Imposing these constraints on minting, burning, and transferring vault shares allows us to safely offer innovative features like smart withdrawal which would otherwise be impossible.

Vaults

Each Notional Exponent vault specifies an asset token and a yield token. The asset token is the base asset (like USDC or ETH) that is borrowed from the lending protocol and used to mint shares.

The yield token is the token that’s held by the strategy to generate yield. The yield token could be a staking token like stETH, a PT, or an LP token.

The vault defines how to convert between the asset token and the yield token on deposit and withdraw.

For the simplest strategy type - the staking strategy - conversions between asset token and yield token might happen by trading on a Dex, by staking or redeeming on the issuing protocol, or a combination of the two (i.e. trade USDC -> USDe then stake USDe -> sUSDe on Ethena).

For more advanced strategy types like the Pendle PT strategy or the Convex LP strategy, conversions between asset token and yield token are more complex and involve additional protocol interactions.

Withdraw request managers

Withdraw request managers handle the direct interactions with external protocols like Lido or Ethena to stake or redeem yield tokens like stETH or sUSDe. Each yield token has its own specific withdraw request manager.

When a vault calls for staking or redeeming a specific yield token as part of a deposit or withdrawal, the vault will call that yield token’s withdraw request manager contract. The withdraw request manager will then make the correct function call on the issuing protocol and store any withdraw request information if appropriate.

Smart withdrawal

Smart withdrawal is a two step process to convert vault shares into asset tokens. Smart withdrawal allows users to exit their leveraged positions by redeeming their yield tokens on the issuing protocol instead of trading them on a Dex. This allows them to avoid costly trading fees and potential market price discounts when they want to unwind their positions.

The first step is to initiate the smart withdrawal. In this step, Notional Exponent will transfer the yield tokens that back the user’s shares from the vault to the withdraw request manager. The withdraw request manager then initiates the withdrawal process on the issuing protocol.

Crucially, this step leaves the user’s vault share balance untouched. This is critical because it allows users to keep their vault shares on the lending protocol as collateral while their yield tokens are being redeemed.

Once the issuing protocol has processed the withdraw request, the user can finalize their withdrawal from the Notional Exponent vault. 

In this step, Notional Exponent burns the user’s shares and tells the withdraw request manager to collect the unstaked tokens from the issuing protocol. The withdraw request manager sends the tokens to the vault, the vault converts them to the asset token and transfers the asset tokens out.

Forced smart withdrawal

Notional Exponent’s smart withdrawal functionality does more than just enable improved UX for users. Smart withdrawal also makes it possible to use flash loans to liquidate vault shares that can’t be instantly withdrawn.

These vault shares can’t be instantly withdrawn because their yield tokens are not instantly redeemable and they’re also not tradable on Dexes. Normally, this would make it impossible to liquidate these vault shares using a flash loan. 

Notional Exponent makes this possible by allowing anyone to force an undercollateralized account to initiate the smart withdrawal process. This is called forced withdrawal. 

On forced withdrawal, Notional Exponent will check that the account is undercollateralized on the lending protocol and kick off the smart withdrawal process if it is:

Once the withdraw request is ready to finalize, the account’s strategy shares become instantly redeemable for the unstaked tokens. This makes it possible to liquidate the account with a flash loan:

By enabling flash loan liquidation of yield tokens that are not instantly redeemable and illiquid on Dexes, Notional Exponent significantly expands the universe of yield strategies which can be safely leveraged.

Non-fungible vault shares

Once the smart withdrawal process has been initiated, the value of an account’s vault shares change. 

Unlike vault shares that have not initiated smart withdrawal, this account’s vault shares are no longer worth a specific amount of yield tokens. This account’s vault shares are now entitled to the proceeds of a specific withdrawal request.

In other words, initiating smart withdrawal makes an account’s vault shares non-fungible with other vault shares.

This presents a problem. Lending protocols expect collateral assets to be fungible. They aren’t natively set up to price some vault shares one way and other vault shares another way. 

If lending protocols can’t properly price a collateral asset, they can’t properly enforce their collateralization logic. And if they can’t do that, they can’t safely onboard the collateral asset.

We solve this problem by implementing account-specific pricing. Notional Exponent vaults return a different share price depending on which account’s shares they are asked to price. 

Accounts that have not initiated a withdrawal all get the same price - their vault shares are fungible. But accounts that have initiated a withdrawal get a price specific to their withdrawal request.

Account-specific pricing

Account-specific pricing is not something that lending protocols are designed to do. When lending protocols get the oracle price of a collateral asset, they don’t specify which account the collateral belongs to because they don’t expect it to matter.

The challenge with account-specific pricing is returning the correct vault share price when the lending protocol doesn’t pass the account as call data to the oracle.

This is where Notional Exponent’s access restrictions come into play. 

By routing all user interactions through Notional Exponent’s lending routers, we always know which account the lending protocol will ask about in advance. We then pass that account to the oracle right before it gets asked for the price. This enables the oracle to provide the correct price within the context of each specific transaction.

This design makes it possible to implement account-specific pricing on top of lending protocols that weren’t designed to support it.

Notional Exponent’s architecture was built to deliver the next generation of leveraged yield strategies. Innovations like account-specific pricing and smart withdrawal are just the beginning.

Excited to see it in action? Want to try Notional Exponent when it goes live this fall and make some money? 

Get on board anon. Follow us on Twitter and sign up for our newsletter to stay up to date - don’t miss out!

Teddy Woodward

Co-Founder and CEO