Voltz: AMM for Interest Rate Swaps
Voltz protocol is a noncustodial AMM for Interest Rate Swaps (IRS). It employs a Concentrated Liquidity Virtual AMM for price discovery, and the Margin Engine handles the asset value and liquidations. The effect of these modules allows counterparties to establish and trade fixed and variable rates using a 3000 times more capital efficient mechanism than alternate solutions. The Voltz Protocol implementation is open source and is viewable here.
The high-level architecture of Voltz Protocol is as follows:
The Factory, which is in charge of deploying Interest Rate Swap (IRS) pools, is the core of Voltz Protocol.
Each IRS pool is built over a yield-bearing pool for generating varying returns (e.g. Aave lending pool).
The swaps get settled based on each IRS pool's inception and maturity date.
Each IRS pool is made up of these three important components:
- Margin Engine
- Full Collateralization Module (FCM)
The system uses a single contract to hold and disclose rate history for yield-bearing tokens. A completely on-chain Rate Oracle is an example of such a contract.
Periphery refers to a wrapper smart contract, allowing the Voltz Protocol users to add, delete, and modify data into an IRS contract and change position margin easily.
Positions in margin accounts with underlying tokens below the liquidation threshold stay at risk of being liquidated by a liquidator bots pool.
As specified above, Factory contract is Voltz protocol’s heart, and it has the following key responsibilities:
- Managing the approvals of external contracts to interact with Voltz protocol positions on the owner’s behalf
- Deploying IRS pools
Voltz vAMM Contract
The Voltz Protocol vAMM is only used for price discovery. It assists in determining the fixed rate of interest rate swaps.
The vAMM uses the constant product formula (xy=k), where (x) represents 1% fixed tokens and (y) represents variable tokens.
vAMM establishes the rate at which a trader can swap fixed-for-variable or variable-for-fixed cash flows. Given the vAMM's axes, the following is the relationship between the vAMM price and the annualised fixed rate:
AnnualizedFixedRate = 1/ vAMMPrice
The vAMM is responsible for two main tasks:
- It allows traders to participate in Interest Rate Swaps.
- It allows liquidity providers to apply fixed rate ranges to the vAMM.
Voltz Margin Engine
The Margin Engine manages the underlying assets that traders and liquidity providers use as collateral. It permits cash flow movements between positions in an IRS pool at the pool's maturity to satisfy active interest rate swap contracts entered into before maturity.
The Margin Engine is responsible for two things:
- Traders and Liquidity Providers can use the Margin Engine to add or remove underlying tokens from their margin account.
- Traders and liquidity providers can use the Margin Engine to settle their interest rate swaps after the IRS pool matures.
Full Collateralisation Module
Fixed Takers who want to collateralise their positions fully can do so using the Voltz Protocol by depositing underlying yield-bearing assets (such as aUSDC from Aave v2) into the Full Collateralisation Module (FCM) linked to the MarginEngine.
Because multiple underlying yield-bearing protocols have different mechanics that produce varied APYs, each underlying protocol supported by Voltz has its FCM contract logic.
When it comes to settlements, the FCM and MarginEngine work together in terms of the underlying tokens (e.g. USDC), which means that after the IRS pool matures, the positions in the Margin Engine can be settled with the FCM by invoking a function call in the FCM that performs a yield-bearing token withdrawal in exchange for the underlying tokens.
Working of Voltz
Fixed Takers (FTs) are one side of the coin, where you swap a variable rate for a fixed rate. Traders can use this to reduce risk in their portfolios by 'locking in' a fixed interest rate. Variable Takers (VTs) are the opposite side of the coin, where you swap a fixed rate for a variable rate. This allows more skilled traders to maximise possible profit capture on individual asset rates.
The link between VTs and FTs, and Liquidity Providers is summarised in the picture below.
Fixed Takers (FTs)
Set Takers replace fluctuating rates with fixed rates. For example, you might possess a variable-rate-of-return asset, such as cDAI. You can initiate a swap on Voltz if you don't want the risk of a variable interest rate on your DAI and instead want a set rate of return.
Let's use an example to demonstrate:
- Alice has $10,000 in cDAI, which offers a variable rate of return of 10% APY at the moment.
- Alice doesn't want to take the chance of the rate dropping, so she'd rather lock it in for 90 days.
- Alice comes to Voltz and joins the 90-day cDAI pool, which has a fixed rate of 10% right now.
- Alice places a $10,000 deposit in cDAI and secures a 10% fixed rate for the following 90 days.
If the variable rate of return on cDAI falls to 5% in this scenario, Alice is unconcerned because she has already locked in her 10% for the next 90 days.
Let's take a breather for a moment. What just transpired may appear to be insignificant, yet it is significant.
Alice just converted an asset with a variable rate of return into a fixed rate asset. One of Voltz's primary abilities is to break down the barriers between fixed and variable rates for the first time in DeFi. To put it another way, Voltz allows traders to eliminate risk by locking in interest rates on their variable rate crypto assets.
Variable Takers (VTs)
Variable Takers make the switch from fixed to variable rates of return. You're effectively "selling" a fixed rate to gain leveraged exposure to variable yield in this case. You'd do this if you think the variable rate of return on Voltz AMM will be higher throughout the term than the current fixed-rate pricing. We expect VTs to have a higher risk tolerance than FTs, but VTs also have the potential for significant profit growth.
Let's look at another scenario:
- The current cDAI variable APY is ten percent, and the Voltz 90-day cDAI pool's fixed rate is ten percent as well.
- Bob expects the cDAI rate to rise to 20% and wants to leverage his exposure to this potential gain.
- Bob swaps by putting $10,000 DAI in margin and selecting a 15x leverage.
- At the time he joins the swap, Bob has a notional exposure of $150,000 to the underlying rate of cDAI minus the fixed rate of Voltz AMM (i.e. 10 percent in this example)
If the cDAI rate suddenly climbs to 20% APY, Bob has just made a significant profit.
This implies Bob put down $10,000 as a margin and handed over $13,699 to Voltz after 90 days. Bob would make a profit of over 250 percent if he could continue this technique for a year and reinvest his profits.
The danger here is that Bob will lose money if the rate falls.
It's worth noting that when more FTs trade, the Voltz AMM's fixed-rate decreases. As FTs trade, we expect VTs will be able to enter the market and extract significant value in the form of levered variable yield exposure.
Liquidity Providers (LPs)
Liquidity Providers supply the liquidity that Voltz AMM requires for FTs and VTs to trade. It also ensures that Voltz AMM has a larger liquidity pool within its preferred fixed-rate bands. When transactions are made utilising their liquidity, LPs are paid a fee.
LPs can earn a lot of money by depositing liquidity in a range with a balanced quantity of FT and VT trading volume. Voltz AMM is up to 3,000x more capital efficient than other models because of concentrated liquidity, margin recycling, and the margin engine. In other terms, it means that limited partners can earn greater fees with less capital.
How to Access Voltz Protocol
Here is how to access Voltz protocol UI for becoming a trader or a liquidity provider:
Opening the Site and Connecting Wallet:
- Visit Voltz.xyz.
- Now click on “Press Start for Testnet”. You will be redirected to the next page.
- Click on “Connect Wallet” to connect with your Ethereum wallet. For signing transactions, you must have enough Ether to cover the gas fee.
- There are two options at the top right corner: “Traders” and “Liquidity providers”.
Options for Traders:
In the “Traders” option, you will find two options: “Trader Pools” and “Portfolio”.
In the “Trader pools” option, you will find the details about IRS pools powered by Voltz with a “Trade” button to enter the swap.
- Choose the pool to engage with for entering into an active IRS position. IRS pools may differ based on their maturity date and the underlying yield-bearing asset. After choosing a pool, click on “Trade” button. A popup will be displayed:
- There will be the details about underlying yield-bearing asset (example, aUSDC), current fixed Annual Percentage Rate in the pool, the historical variable Annual Percentage Yield of the asset. There will also be a maturity slider that reaches 100% as the pool hits its maturity date. After this date the traders can settle their positions without any restrictions.
- Before entering an IRS, choose whether you want a Fixed taker or a variable by toggling the button.
- Then input the “Notional amount” to trade. At the pool’s maturity, the traders’ returns will be proportional to the entered amount.
- After entering the amount, the minimum margin requirement will be shown to be supplied by the trader in underlying tokens (e.g. USDC) for supporting their IRS position.
- After entering the additional margin and notional amount, click Trade Variable Rate / Trade Fixed Rate for the trade’s execution.
In the “Portfolio” option, there is the IRS position with the trader’s active position that can be: a variable taker position or a fixed taker position
- You will see all the active IRS positions in each IRS pool on Voltz Protocol. Ensure that the wallet is connected to see active IRS positions executed from your address.
- You may also switch between your Fixed and Variable Taker positions by toggling the button. Each position is associated with a Voltz IRS pool with underlying yield-bearing token (e.g. aUSDC) and maturity date.
- Collateral/ margin supporting any IRS position is shown in the margin column. Notional column shows the total trade size and estimated cashflow shows the underlying token’s expected amount.
- Calculating estimated cashflow depends on the assumption that the variable APY in the yield-bearing pool isn’t changeable.
Option for Liquidity Providers:
In the “Liquidity Providers” option, you will find two options: “LP Pools” and “Positions”.
In the option of “LP Pools”, you will find the details about IRS pools powered by Voltz with a “Provide Liquidity” button to provide liquidity in any pool.
- Choose an IRS pool to supply liquidity into for entering an active IRS position with traderswho cross the fixed rate range you specify during the fee revenue collection.
- IRS pools on Voltz differ as per their maturity date and underlying yield-bearing asset.
- After choosing a pool, click the ”Provide Liquidity” button. A popup will be displayed:
- It will show the details about underlying yield-bearing asset (example, aUSDC), IRS pool’s current fixed APR and the historical variable APY of underlying yield-bearing asset.
- Other details like a maturity slider will be displayed that will hit 100% after the pool reaches its maturity date. After this date liquidity providers are free to their unnetted IRS positions.
- Before providing liquidity to the IRS pool, you must mention lower and upper fixed rate bounds of fixed rate range within which you wish to enter the active IRS positions with traders engaging with the pool and crossing the fixed rate range.
- After that, enter the notional amount of liquidity to provide in Provided Liquidity ****input box. After entering this, you will find the minimum margin requirement to be supplied by the liquidity provider in underlying tokens (e.g. USDC) for supporting their active LP position.
- After entering the liquidity’s notional amount and added margin amounts , click ”Provide Liquidity” to provide liquidity on chain.
In the “Positions” option, there are details about the liquidity provider’s all active positions.
- You will find details of all active liquidity provider positions. Ensure that the wallet is connected to see active positions executed from the address.
- Each row will correspond to some unique liquidity provider position. Each of these positions have distinct fixed rate ranges and associated margin account in underlying tokens (e.g. USDC). Each position is also related with given Voltz IRS pool with its respective maturity date and underlying yield-bearing token (e.g. aUSDC).
- And lastly the notional details of the provided liquidity amount will also be displayed.
While a significant portion of cash and users will pass through the interface, developers will have an even greater chance to innovate on top of the Voltz Protocol's fundamental contracts. The protocol is intended to serve as the foundation for financial infrastructure, allowing anybody to incorporate its yield and data into new apps and experiences.
Subscribe to our Newsletter
Get the best updates from the Web3 ecosystem & The Dapp List in your inbox every week 👇